Initial commit - NUC server configuration and docs
- CLAUDE.md: Server instructions and service reference - docs/: Persistent documentation (architecture, guides) - .artifacts/: Session-generated notes - playwriter-browser/: Remote browser container config Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
151
README.md
Normal file
151
README.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# NUC Home Server
|
||||
|
||||
Personal home server running on Intel NUC at `192.168.1.3`
|
||||
|
||||
## Quick Access
|
||||
|
||||
| Service | URL | Description |
|
||||
|---------|-----|-------------|
|
||||
| **Homepage** | http://192.168.1.3:3000 | Dashboard with all services |
|
||||
| **Coolify** | http://192.168.1.3:8000 | Service deployment & management |
|
||||
| **Gitea** | http://192.168.1.3:3030 | Git repository hosting |
|
||||
| **Outline** | http://192.168.1.3:3080 | Documentation wiki (login via Gitea) |
|
||||
| **n8n** | http://192.168.1.3:5678 | Workflow automation |
|
||||
| **Vaultwarden** | http://192.168.1.3:8222 | Password manager (Bitwarden compatible) |
|
||||
| **Ntfy** | http://192.168.1.3:8333 | Push notifications |
|
||||
| **Uptime Kuma** | http://192.168.1.3:3001 | Service monitoring |
|
||||
|
||||
## SSH Access
|
||||
|
||||
```bash
|
||||
# Connect to the server
|
||||
ssh nuc
|
||||
|
||||
# Or explicitly
|
||||
ssh alezmad@192.168.1.3
|
||||
```
|
||||
|
||||
Make sure your SSH config includes:
|
||||
```
|
||||
Host nuc
|
||||
HostName 192.168.1.3
|
||||
User alezmad
|
||||
IdentityFile ~/.ssh/id_ed25519_nuc
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ NUC Server │
|
||||
│ 192.168.1.3 │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Coolify (PaaS) │
|
||||
│ ├── Traefik (Reverse Proxy) :80/:443 │
|
||||
│ ├── Services: │
|
||||
│ │ ├── Homepage (Dashboard) │
|
||||
│ │ ├── Gitea (Git + OAuth2 Provider) │
|
||||
│ │ ├── Outline (Wiki/Docs) │
|
||||
│ │ ├── n8n (Automation) │
|
||||
│ │ ├── Vaultwarden (Passwords) │
|
||||
│ │ ├── Ntfy (Notifications) │
|
||||
│ │ ├── MinIO (S3 Storage) │
|
||||
│ │ ├── FileBrowser │
|
||||
│ │ └── Authentik (Identity - partially configured) │
|
||||
│ └── Databases (PostgreSQL, Redis per service) │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Standalone Containers: │
|
||||
│ ├── Uptime Kuma (Monitoring) │
|
||||
│ ├── Dozzle (Log Viewer) │
|
||||
│ ├── Adminer (DB Admin) │
|
||||
│ └── Kopia (Backups) │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Service Details
|
||||
|
||||
### Coolify
|
||||
- **URL:** http://192.168.1.3:8000
|
||||
- **Purpose:** Self-hosted PaaS for deploying and managing all services
|
||||
- **Login:** Admin account configured during setup
|
||||
|
||||
### Gitea
|
||||
- **URL:** http://192.168.1.3:3030
|
||||
- **SSH:** Port 22222
|
||||
- **Purpose:** Git repository hosting, also serves as OAuth2 provider for Outline
|
||||
- **Admin:** alezmad
|
||||
|
||||
### Outline
|
||||
- **URL:** http://192.168.1.3:3080
|
||||
- **Purpose:** Team documentation and wiki
|
||||
- **Auth:** Login via Gitea (OIDC)
|
||||
- **Note:** Uses nginx proxy to strip HSTS headers
|
||||
|
||||
### n8n
|
||||
- **URL:** http://192.168.1.3:5678
|
||||
- **Purpose:** Workflow automation (like Zapier)
|
||||
- **Runners:** Has dedicated task runners container
|
||||
|
||||
### Vaultwarden
|
||||
- **URL:** http://192.168.1.3:8222
|
||||
- **Purpose:** Self-hosted Bitwarden-compatible password manager
|
||||
- **Clients:** Use any Bitwarden client, point to this URL
|
||||
|
||||
### Ntfy
|
||||
- **URL:** http://192.168.1.3:8333
|
||||
- **Purpose:** Push notifications to mobile/desktop
|
||||
- **Mobile App:** Available on F-Droid and Play Store
|
||||
|
||||
### MinIO
|
||||
- **Console:** http://192.168.1.3:9001
|
||||
- **API:** http://192.168.1.3:9000
|
||||
- **Purpose:** S3-compatible object storage
|
||||
|
||||
### Monitoring & Tools
|
||||
- **Uptime Kuma:** http://192.168.1.3:3001 - Service health monitoring
|
||||
- **Dozzle:** http://192.168.1.3:9999 - Real-time Docker log viewer
|
||||
- **Adminer:** http://192.168.1.3:8088 - Database management UI
|
||||
- **Kopia:** http://192.168.1.3:51515 - Backup management
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### View Service Logs
|
||||
```bash
|
||||
ssh nuc "docker logs <container_name> -f --tail 100"
|
||||
```
|
||||
|
||||
### Restart a Service
|
||||
```bash
|
||||
ssh nuc "docker restart <container_name>"
|
||||
```
|
||||
|
||||
### Check All Services
|
||||
```bash
|
||||
ssh nuc "docker ps --format 'table {{.Names}}\t{{.Status}}'"
|
||||
```
|
||||
|
||||
### Backup Consideration
|
||||
- Kopia handles automated backups
|
||||
- Access at http://192.168.1.3:51515 to manage snapshots
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Service Not Accessible
|
||||
1. Check if container is running: `ssh nuc "docker ps | grep <service>"`
|
||||
2. Check logs: `ssh nuc "docker logs <container> --tail 50"`
|
||||
3. Check port forwarding container if applicable
|
||||
|
||||
### After Coolify Redeploy
|
||||
Containers may be in "Created" state. Start manually:
|
||||
```bash
|
||||
ssh nuc "docker start <container_name>"
|
||||
```
|
||||
|
||||
### HTTPS/SSL Issues
|
||||
Some browsers cache HSTS. Clear at `chrome://net-internals/#hsts`
|
||||
|
||||
## Files in This Directory
|
||||
|
||||
- `CLAUDE.md` - Instructions for Claude Code AI assistant
|
||||
- `README.md` - This file (human documentation)
|
||||
- `.claude/settings.json` - MCP server configuration for Claude Code
|
||||
Reference in New Issue
Block a user