AI given structure
This commit is contained in:
42
docs/services/devbox.md
Normal file
42
docs/services/devbox.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# devbox
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `devbox-devcontainer` |
|
||||
| **Container** | `devcontainer` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `DEVBOX_SSH_PORT` | `46573` |
|
||||
| `DEVBOX_MEM_LIMIT` | `10g` |
|
||||
| `DEVBOX_SWAP_LIMIT` | `20g` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `${DEVBOX_SSH_PORT:-46573}` | `2222` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/devbox` | `/home/devuser` | rw |
|
||||
|
||||
### Resources
|
||||
|
||||
- Memory limit: `${DEVBOX_MEM_LIMIT:-10g}`
|
||||
- Memory+Swap limit: `${DEVBOX_SWAP_LIMIT:-20g}`
|
||||
|
||||
---
|
||||
58
docs/services/gitea.md
Normal file
58
docs/services/gitea.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# gitea
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `gitea/gitea:1.24.3` |
|
||||
| **Container** | `gitea` |
|
||||
| **Restart** | `always` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`, `.env`
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `USER_UID` | `${USER_UID}` |
|
||||
| `USER_GID` | `${USER_GID}` |
|
||||
| `GITEA__database__DB_TYPE` | `sqlite3` |
|
||||
| `GITEA__server__ROOT_URL` | `https://gitea.${DOMAIN}/` |
|
||||
| `USER` | `git` |
|
||||
| `GITEA_CUSTOM` | `/data/gitea` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `222` | `22` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/gitea` | `/data` | rw |
|
||||
| `/etc/timezone` | `/etc/timezone` | ro |
|
||||
| `/etc/localtime` | `/etc/localtime` | ro |
|
||||
|
||||
### Networks
|
||||
|
||||
- `gitea` (internal)
|
||||
- `web` (internal)
|
||||
|
||||
### Labels
|
||||
|
||||
| Key | Value |
|
||||
|-----|-------|
|
||||
| `traefik.enable` | `true` |
|
||||
| `traefik.http.routers.gitea.entrypoints` | `websecure` |
|
||||
| `traefik.http.routers.gitea.rule` | `Host(`gitea.${DOMAIN}`)` |
|
||||
| `traefik.http.routers.gitea.tls.certresolver` | `letsencrypt` |
|
||||
| `traefik.http.services.gitea.loadbalancer.server.port` | `3000` |
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `gitea` (internal)
|
||||
- `web` (external)
|
||||
|
||||
---
|
||||
55
docs/services/jellyfin.md
Normal file
55
docs/services/jellyfin.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# jellyfin
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `jellyfin/jellyfin:latest` |
|
||||
| **Container** | `jellyfin` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `JELLYFIN_PORT` | `8096` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `${JELLYFIN_PORT:-8096}` | `8096` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/jellyfin/config` | `/config` | rw |
|
||||
| `${STORAGE_PATH}/jellyfin/cache` | `/cache` | rw |
|
||||
| `${MEDIA_PATH}` | `/media` | rw |
|
||||
|
||||
### Networks
|
||||
|
||||
- `web` (internal)
|
||||
|
||||
### Labels
|
||||
|
||||
| Key | Value |
|
||||
|-----|-------|
|
||||
| `traefik.enable` | `true` |
|
||||
| `traefik.http.routers.jellyfin.entrypoints` | `websecure` |
|
||||
| `traefik.http.routers.jellyfin.rule` | `Host(`jellyfin.${DOMAIN}`)` |
|
||||
| `traefik.http.routers.jellyfin.tls.certresolver` | `letsencrypt` |
|
||||
| `traefik.http.services.jellyfin.loadbalancer.server.port` | `8096` |
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `web` (external)
|
||||
|
||||
---
|
||||
9
docs/services/n8n.md
Normal file
9
docs/services/n8n.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# N8N
|
||||
|
||||
Workflow automation platform. **Planned - not yet deployed.**
|
||||
|
||||
## Planned Configuration
|
||||
|
||||
- **URL:** `https://n8n.sjhl.nz`
|
||||
- **Port:** 5678
|
||||
- **Data:** `/mnt/storage/docker-data/n8n`
|
||||
56
docs/services/nextcloud.md
Normal file
56
docs/services/nextcloud.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# nextcloud
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `ghcr.io/nextcloud-releases/all-in-one:latest` |
|
||||
| **Container** | `nextcloud-aio-mastercontainer` |
|
||||
| **Restart** | `always` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `APACHE_PORT` | `11000` |
|
||||
| `NEXTCLOUD_DATADIR` | `${STORAGE_PATH}/nextcloud` |
|
||||
| `APACHE_ADDITIONAL_NETWORK` | `web` |
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `AIO_PORT` | `8081` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `${AIO_PORT:-8081}` | `8080` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `nextcloud_aio_mastercontainer` | `/mnt/docker-aio-config` | rw |
|
||||
| `/var/run/docker.sock` | `/var/run/docker.sock` | ro |
|
||||
|
||||
### Networks
|
||||
|
||||
- `nextcloud-aio` (internal)
|
||||
- `web` (internal)
|
||||
|
||||
### Named Volumes (compose-level)
|
||||
|
||||
- `nextcloud_aio_mastercontainer` (managed by compose)
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `nextcloud-aio` (internal)
|
||||
- `web` (external)
|
||||
|
||||
---
|
||||
42
docs/services/obsidian.md
Normal file
42
docs/services/obsidian.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# obsidian
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `couchdb:latest` |
|
||||
| **Container** | `obsidian-livesync` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`, `.env`
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `COUCHDB_USER` | `${COUCHDB_USER:-admin}` |
|
||||
| `COUCHDB_PASSWORD` | `${COUCHDB_PASSWORD}` |
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `COUCHDB_USER` | `admin` |
|
||||
| `COUCHDB_PASSWORD` | `REPLACE_WITH_STRONG_PASSWORD` |
|
||||
| `COUCHDB_PORT` | `5984` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `${COUCHDB_PORT:-5984}` | `5984` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/obsidian` | `/opt/couchdb/data` | rw |
|
||||
|
||||
---
|
||||
153
docs/services/qbittorrent.md
Normal file
153
docs/services/qbittorrent.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# qbittorrent
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
## `gluetun`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `qmcgaw/gluetun` |
|
||||
| **Container** | `qbittorrent_gluetun` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
**Env files:** `../.env`, `.env`
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `VPN_SERVICE_PROVIDER` | `protonvpn` |
|
||||
| `VPN_TYPE` | `wireguard` |
|
||||
| `VPN_PORT_FORWARDING` | `on` |
|
||||
| `TZ` | `${TZ}` |
|
||||
| `SERVER_COUNTRIES` | `New Zealand` |
|
||||
| `PORT_FORWARD_ONLY` | `on` |
|
||||
| `VPN_PORT_FORWARDING_UP_COMMAND` | `/bin/sh -c 'wget -O- --post-data "json={\"listen_port\":{{PORTS}}}" http://localhost:8080/api/v2/app/setPreferences 2>/dev/null || true'` |
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `WIREGUARD_PRIVATE_KEY` | `REPLACE_WITH_YOUR_WIREGUARD_PRIVATE_KEY` |
|
||||
| `QBITTORRENT_PORT` | `8080` |
|
||||
| `JACKETT_PORT` | `9117` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `${QBITTORRENT_PORT:-8080}` | `8080` | tcp |
|
||||
| `${JACKETT_PORT:-9117}` | `9117` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/qbittorrent/gluetun` | `/gluetun` | rw |
|
||||
| `${STORAGE_PATH}/qbittorrent/wireguard` | `/gluetun/wireguard` | rw |
|
||||
|
||||
### Networks
|
||||
|
||||
- `qbittorrent` (internal)
|
||||
|
||||
### Capabilities
|
||||
|
||||
`NET_ADMIN`
|
||||
|
||||
### Devices
|
||||
|
||||
- `/dev/net/tun:/dev/net/tun`
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `qbittorrent` (internal)
|
||||
|
||||
---
|
||||
|
||||
## `qbittorrent`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `lscr.io/linuxserver/qbittorrent:latest` |
|
||||
| **Container** | `qbittorrent` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `TZ` | `${TZ}` |
|
||||
| `WEBUI_PORT` | `8080` |
|
||||
| `PUID` | `${USER_UID}` |
|
||||
| `PGID` | `${USER_GID}` |
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `WIREGUARD_PRIVATE_KEY` | `REPLACE_WITH_YOUR_WIREGUARD_PRIVATE_KEY` |
|
||||
| `QBITTORRENT_PORT` | `8080` |
|
||||
| `JACKETT_PORT` | `9117` |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/qbittorrent/config` | `/config` | rw |
|
||||
| `${MEDIA_PATH}/torrents` | `/downloads` | rw |
|
||||
|
||||
### Dependencies
|
||||
|
||||
- `gluetun`
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `qbittorrent` (internal)
|
||||
|
||||
---
|
||||
|
||||
## `jackett`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `linuxserver/jackett:latest` |
|
||||
| **Container** | `jackett` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Environment
|
||||
|
||||
| Variable | Value |
|
||||
|----------|-------|
|
||||
| `TZ` | `${TZ}` |
|
||||
| `PUID` | `${USER_UID}` |
|
||||
| `PGID` | `${USER_GID}` |
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `WIREGUARD_PRIVATE_KEY` | `REPLACE_WITH_YOUR_WIREGUARD_PRIVATE_KEY` |
|
||||
| `QBITTORRENT_PORT` | `8080` |
|
||||
| `JACKETT_PORT` | `9117` |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `${STORAGE_PATH}/qbittorrent/config/jackett` | `/config` | rw |
|
||||
|
||||
### Dependencies
|
||||
|
||||
- `gluetun`
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `qbittorrent` (internal)
|
||||
|
||||
---
|
||||
9
docs/services/supersync.md
Normal file
9
docs/services/supersync.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Supersync
|
||||
|
||||
File synchronization service. **Planned - not yet deployed.**
|
||||
|
||||
## Planned Configuration
|
||||
|
||||
- **URL:** `https://supersync.sjhl.nz`
|
||||
- **Port:** 8443
|
||||
- **Data:** `/mnt/storage/docker-data/supersync`
|
||||
67
docs/services/traefik.md
Normal file
67
docs/services/traefik.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# traefik
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `traefik:v3.6` |
|
||||
| **Container** | `traefik` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Command
|
||||
|
||||
```
|
||||
--entrypoints.web.address=:80 --entrypoints.web.http.redirections.entrypoint.to=websecure --entrypoints.web.http.redirections.entrypoint.scheme=https --entrypoints.websecure.address=:443 --providers.docker=true --providers.docker.exposedbydefault=false --providers.docker.network=web --certificatesresolvers.letsencrypt.acme.httpchallenge=true --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL} --certificatesresolvers.letsencrypt.acme.storage=/certs/acme.json --metrics.prometheus=true --accesslog=true --providers.file.directory=/dynamic --providers.file.watch=true
|
||||
```
|
||||
|
||||
### Secrets (from `.env.example`)
|
||||
|
||||
These variables must be set in the service's `.env` file:
|
||||
|
||||
| Variable | Default |
|
||||
|----------|---------|
|
||||
| `TRAEFIK_DASHBOARD_PORT` | `8082` |
|
||||
| `ACME_EMAIL` | `letsencrypt@example.com` |
|
||||
| `DASHBOARD_BASIC_AUTH` | `admin:$$apr1$$changeme$$REPLACE_WITH_HTPASSWD_HASH` |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host | Container | Protocol |
|
||||
|------|-----------|----------|
|
||||
| `80` | `80` | tcp |
|
||||
| `443` | `443` | tcp |
|
||||
| `${TRAEFIK_DASHBOARD_PORT:-8082}` | `8080` | tcp |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Host Path | Container Path | Mode |
|
||||
|-----------|----------------|------|
|
||||
| `/var/run/docker.sock` | `/var/run/docker.sock` | ro |
|
||||
| `${STORAGE_PATH}/traefik/certs` | `/certs` | rw |
|
||||
| `${STORAGE_PATH}/traefik/dynamic` | `/dynamic` | ro |
|
||||
|
||||
### Networks
|
||||
|
||||
- `web` (internal)
|
||||
|
||||
### Security Options
|
||||
|
||||
- `no-new-privileges:true`
|
||||
|
||||
### Labels
|
||||
|
||||
| Key | Value |
|
||||
|-----|-------|
|
||||
| `traefik.enable` | `true` |
|
||||
| `traefik.http.middlewares.dashboard-auth.basicauth.users` | `${DASHBOARD_BASIC_AUTH}` |
|
||||
| `traefik.http.routers.dashboard.entrypoints` | `websecure` |
|
||||
| `traefik.http.routers.dashboard.middlewares` | `dashboard-auth@docker` |
|
||||
| `traefik.http.routers.dashboard.rule` | `Host(`dashboard.${DOMAIN}`)` |
|
||||
| `traefik.http.routers.dashboard.service` | `api@internal` |
|
||||
| `traefik.http.routers.dashboard.tls` | `true` |
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `web` (external)
|
||||
|
||||
---
|
||||
28
docs/services/whoami.md
Normal file
28
docs/services/whoami.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# whoami
|
||||
|
||||
> Auto-generated from `docker-compose.yml`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Image** | `traefik/whoami` |
|
||||
| **Container** | `whoami` |
|
||||
| **Restart** | `unless-stopped` |
|
||||
|
||||
### Networks
|
||||
|
||||
- `web` (internal)
|
||||
|
||||
### Labels
|
||||
|
||||
| Key | Value |
|
||||
|-----|-------|
|
||||
| `traefik.enable` | `true` |
|
||||
| `traefik.http.routers.whoami.entrypoints` | `websecure` |
|
||||
| `traefik.http.routers.whoami.rule` | `Host(`whoami.${DOMAIN}`)` |
|
||||
| `traefik.http.routers.whoami.tls` | `true` |
|
||||
|
||||
### Networks (compose-level)
|
||||
|
||||
- `web` (external)
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user