- 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>
152 lines
5.6 KiB
Markdown
152 lines
5.6 KiB
Markdown
# 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
|