Compare commits
4 Commits
9233278247
...
c18c745400
Author | SHA1 | Date | |
---|---|---|---|
c18c745400 | |||
5d3aff6df5 | |||
fc91496720 | |||
f334c2185e |
51
README.md
51
README.md
@ -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.
|
|
||||||
|
1
apps.yml
1
apps.yml
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
5
vms.yml
5
vms.yml
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user