1
0

Compare commits

...

4 Commits

Author SHA1 Message Date
c18c745400 Update README 2025-07-07 21:59:28 +00:00
5d3aff6df5 Added more limit to arch cpu 2025-07-07 21:59:23 +00:00
fc91496720 Added shared dir between filwbrowser and libreoffice 2025-07-07 21:59:15 +00:00
f334c2185e Fix type 2025-07-01 16:38:12 +00:00
5 changed files with 32 additions and 31 deletions

View File

@ -1,36 +1,35 @@
# Self-Hosted Services # Self-Hosted Services
This repository contains my personal Docker Compose configuration for various self-hosted services, all exposed via Traefik. This repository contains my personal Docker Compose configuration for various self-hosted services, all exposed via Traefik. It serves primarily as a personal deployment configuration and a reference for others.
It serves primarily as a personal deployment configuration and a reference for others.
--- ***
### Services Included: ### Services Included:
- **Traefik:** Reverse proxy and load balancer with automatic HTTPS, now also handling SSH entry points and `bouvais.lu` redirection. * **Traefik:** Reverse proxy and load balancer with automatic HTTPS, now also handling SSH entry points and `bouvais.lu` redirection.
- **Prometheus:** Monitoring system. * **Monitoring Stack:**
- **Grafana:** Data visualization and dashboarding for Prometheus. * **Prometheus:** Monitoring system.
- **cAdvisor:** Container resource usage and performance analysis. * **Grafana:** Data visualization and dashboarding for Prometheus.
- **Node Exporter:** Exposes hardware and OS metrics for Prometheus. * **cAdvisor:** Container resource usage and performance analysis.
- **Nvidia GPU Exporter:** Exposes NVIDIA GPU metrics for Prometheus. * **Node Exporter:** Exposes hardware and OS metrics for Prometheus.
- **Fail2Ban:** Intrusion prevention for various services, specifically configured to monitor Docker logs. * **Nvidia GPU Exporter:** Exposes NVIDIA GPU metrics for Prometheus.
- **Vaultwarden:** Unofficial Bitwarden server implementation, with an added secure admin interface. * **Fail2Ban:** Intrusion prevention for various services, specifically configured to monitor Traefik's access logs.
- **Kopia:** Fast, secure, and incremental backups, with a web UI. * **Vaultwarden:** Unofficial Bitwarden server implementation, with an added secure admin interface.
- **Siyuan:** A local-first personal knowledge management system (replaces Memos). * **Kopia:** Two instances for fast, secure, and incremental backups: one for local backups (`kopia`) and another for off-site backups to Google Cloud Platform (`kopia-gcp`).
- **Jellyfin:** Free software media system. * **Siyuan:** A local-first personal knowledge management system.
- **Filebrowser:** Web interface to browse and manage files. * **Jellyfin:** Free software media system.
- **Gitea:** Lightweight Git service (this repository is hosted on it!), also serving documentation via MkDocs. * **Filebrowser:** Web interface to browse and manage files.
- **Gitea Runner:** A runner for Gitea actions. * **LibreOffice Online:** A web-based version of the LibreOffice suite for in-browser document editing.
- **MkDocs ZipponDB:** Serves documentation generated by MkDocs. * **Gitea & Gitea Runner:** A lightweight Git service and a runner for Gitea actions.
- **Actual Budget:** Local-first personal finance app. * **MkDocs:** Serves a static documentation site generated by MkDocs.
- **MinIO:** High performance, S3 compatible object storage. * **Docker Registry & UI:** A private Docker registry to store custom images, complete with a web interface for management.
- **Open WebUI:** A user-friendly interface for interacting with large language models. * **Actual Budget:** Local-first personal finance app.
- **Ollama:** A framework for running large language models locally, with GPU support. * **MinIO:** High performance, S3 compatible object storage. For DVC.
- **Personal Website (website-pro):** A custom-built professional website. * **Open WebUI & Pipelines:** A user-friendly interface for interacting with large language models, supported by a backend pipeline service.
* **Web-based Arch Linux Terminals:** Two `ttyd`-based containers (`arch-cpu` and `arch-gpu`) providing persistent Arch Linux environments accessible through a web browser, with one configured for GPU access.
--- ***
### Usage ### Usage
This repository is not intended for direct cloning and deployment as-is. It is highly tailored to my specific setup, including domain names (`bouvais.lu`), paths, and personal configurations. This repository is not intended for direct cloning and deployment as-is. It is highly tailored to my specific setup, including domain names (`bouvais.lu`), paths, and personal configurations. However, you can use this repository as an example or reference.
However, you can use this repository as an example or reference.

View File

@ -106,6 +106,7 @@ services:
- 3001:3001 - 3001:3001
volumes: volumes:
- ./hdd0/libreoffice:/config - ./hdd0/libreoffice:/config
- ./hdd0/my_files/:/data
restart: unless-stopped restart: unless-stopped
labels: labels:
- traefik.enable=true - traefik.enable=true

View File

@ -45,7 +45,7 @@ services:
- ./config/users.cred:/users.cred - ./config/users.cred:/users.cred
- ./hdd0/logs:/logs - ./hdd0/logs:/logs
labels: labels:
- traefik.enable=true" - traefik.enable=true
# Dashboard Router # Dashboard Router
- traefik.http.routers.dashboard.rule=Host(`traefik.bouvais.lu`) - traefik.http.routers.dashboard.rule=Host(`traefik.bouvais.lu`)
- traefik.http.routers.dashboard.entrypoints=websecure - traefik.http.routers.dashboard.entrypoints=websecure
@ -148,7 +148,7 @@ services:
volumes: volumes:
- ./hdd0/minio_data:/data - ./hdd0/minio_data:/data
labels: labels:
- traefik.enable=true" - traefik.enable=true
# Router and service for the MinIO API # Router and service for the MinIO API
- traefik.http.routers.minio-api.rule=Host(`minio-api.bouvais.lu`) - traefik.http.routers.minio-api.rule=Host(`minio-api.bouvais.lu`)
- traefik.http.routers.minio-api.entrypoints=websecure - traefik.http.routers.minio-api.entrypoints=websecure

View File

@ -39,7 +39,7 @@ services:
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_MY_PASSWORD} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_MY_PASSWORD}
- GF_SERVER_ROOT_URL=https://grafana.bouvais.lu - GF_SERVER_ROOT_URL=https://grafana.bouvais.lu
labels: labels:
- traefik.enable=true" - traefik.enable=true
- traefik.http.routers.grafana.rule=Host(`grafana.bouvais.lu`) - traefik.http.routers.grafana.rule=Host(`grafana.bouvais.lu`)
- traefik.http.routers.grafana.entrypoints=websecure - traefik.http.routers.grafana.entrypoints=websecure
- traefik.http.routers.grafana.tls.certresolver=myresolver - traefik.http.routers.grafana.tls.certresolver=myresolver

View File

@ -21,8 +21,8 @@ services:
deploy: deploy:
resources: resources:
limits: limits:
cpus: '1.0' cpus: '2.0'
memory: 512M memory: 1G
reservations: reservations:
cpus: '0.5' cpus: '0.5'
memory: 256M memory: 256M
@ -58,3 +58,4 @@ services:
- driver: nvidia - driver: nvidia
capabilities: ["gpu"] capabilities: ["gpu"]
count: all count: all