Only part of it
Private server infrastructure based on Docker containers, hosted on a Dell Wyse 5070 thin client. Web services are isolated in an internal Docker network and exposed to the internet exclusively through Caddy (Reverse Proxy).
- Server: Dell Wyse 5070 Celeron J4105 8GB 512GB
- OS: Debian 13
- DE: SSH FTW
- Environment: Docker + Docker Compose
| Application | Description |
|---|---|
| Caddy | Reverse Proxy + Automated SSL certificates (Let's Encrypt). |
| Shared PostgreSQL | Centralized database for Joplin and Discord Bot. |
| FriendifyBot | Discord Speed Friending bot |
| Joplin Server | Sync server for E2EE notes. |
- Add
.envfiles and set values for your domain, database, and services. - Start services from each service directory, for example:
cd postgres && docker compose up -dcd joplin && docker compose up -dcd friendify && docker compose up -dcd caddy && docker compose up -d
- View logs or troubleshoot from the repo root:
docker compose -f postgres/docker-compose.yml logs -f
- Resoures usage:
htop -d 20 - Disk space:
df -h /
Manual update
sudo apt update && sudo apt upgrade && sudo apt autoremove- Pull updates for a service and restart:
cd <service> && docker compose pull && docker compose up -d
- Clean unused images:
docker image prune -a
Docker Management:
docker ps -adocker image ls -adocker volume ls- Start a service:
docker compose up -d - Stop service:
docker compose stop - Stop and remove containers, networks..:
docker compose down - View live logs:
docker logs --tail 50 -f <container_name> - Dump logs:
docker compose logs <container_name> > All.log - Execute the command:
docker exec -it <command>
Database Management:
- Dump DB:
docker exec -t postgres pg_dump -U <USER> <DB_NAME> > backup.sql - Restore DB:
cat backup.sql | docker exec -i postgres psql -U <USER> -d <DB_NAME>