Sanitized mirror from private repository - 2026-03-19 08:48:54 UTC
This commit is contained in:
212
docs/services/individual/README.md
Normal file
212
docs/services/individual/README.md
Normal file
@@ -0,0 +1,212 @@
|
||||
# 📚 Individual Service Documentation Index
|
||||
|
||||
This directory contains detailed documentation for all 159 services in the homelab.
|
||||
|
||||
## 📋 Services by Category
|
||||
|
||||
### Ai (1 services)
|
||||
|
||||
- 🟢 **[ollama](ollama.md)** - guava
|
||||
|
||||
### Communication (10 services)
|
||||
|
||||
- 🟢 **[element-web](element-web.md)** - anubis
|
||||
- 🟡 **[jicofo](jicofo.md)** - Atlantis
|
||||
- 🟡 **[jvb](jvb.md)** - Atlantis
|
||||
- 🔴 **[mastodon](mastodon.md)** - Atlantis
|
||||
- 🔴 **[mastodon-db](mastodon-db.md)** - Atlantis
|
||||
- 🔴 **[mastodon-redis](mastodon-redis.md)** - Atlantis
|
||||
- 🟡 **[mattermost](mattermost.md)** - homelab_vm
|
||||
- 🟡 **[mattermost-db](mattermost-db.md)** - homelab_vm
|
||||
- 🟢 **[prosody](prosody.md)** - Atlantis
|
||||
- 🟢 **[signal-cli-rest-api](signal-cli-rest-api.md)** - homelab_vm
|
||||
|
||||
### Development (4 services)
|
||||
|
||||
- 🟢 **[companion](companion.md)** - concord_nuc
|
||||
- 🟢 **[inv_sig_helper](inv-sig-helper.md)** - concord_nuc
|
||||
- 🟡 **[invidious](invidious.md)** - concord_nuc
|
||||
- 🟢 **[redlib](redlib.md)** - Atlantis
|
||||
|
||||
### Gaming (1 services)
|
||||
|
||||
- 🟢 **[satisfactory-server](satisfactory-server.md)** - homelab_vm
|
||||
|
||||
### Media (20 services)
|
||||
|
||||
- 🟢 **[bazarr](bazarr.md)** - Calypso
|
||||
- 🟢 **[calibre-web](calibre-web.md)** - Atlantis
|
||||
- 🟡 **[database](database.md)** - raspberry-pi-5-vish
|
||||
- 🟡 **[immich-db](immich-db.md)** - Calypso
|
||||
- 🟡 **[immich-machine-learning](immich-machine-learning.md)** - Calypso
|
||||
- 🟡 **[immich-redis](immich-redis.md)** - Calypso
|
||||
- 🟡 **[immich-server](immich-server.md)** - raspberry-pi-5-vish
|
||||
- 🟢 **[jackett](jackett.md)** - Atlantis
|
||||
- 🟡 **[jellyfin](jellyfin.md)** - Chicago_vm
|
||||
- 🟢 **[lidarr](lidarr.md)** - Calypso
|
||||
- 🟢 **[linuxserver-prowlarr](linuxserver-prowlarr.md)** - Calypso
|
||||
- 🟢 **[navidrome](navidrome.md)** - Bulgaria_vm
|
||||
- 🟡 **[photoprism](photoprism.md)** - anubis
|
||||
- 🟢 **[plex](plex.md)** - Calypso
|
||||
- 🟢 **[prowlarr](prowlarr.md)** - Calypso
|
||||
- 🟢 **[radarr](radarr.md)** - Calypso
|
||||
- 🟢 **[readarr](readarr.md)** - Calypso
|
||||
- 🟢 **[sabnzbd](sabnzbd.md)** - Calypso
|
||||
- 🟢 **[sonarr](sonarr.md)** - Calypso
|
||||
- 🟢 **[tautulli](tautulli.md)** - Calypso
|
||||
|
||||
### Monitoring (7 services)
|
||||
|
||||
- 🟢 **[blackbox-exporter](blackbox-exporter.md)** - setillo
|
||||
- 🟡 **[cadvisor](cadvisor.md)** - setillo
|
||||
- 🟡 **[grafana](grafana.md)** - homelab_vm
|
||||
- 🟢 **[node-exporter](node-exporter.md)** - setillo
|
||||
- 🟢 **[node_exporter](node-exporter.md)** - homelab_vm
|
||||
- 🟡 **[prometheus](prometheus.md)** - setillo
|
||||
- 🟢 **[uptime-kuma](uptime-kuma.md)** - Atlantis
|
||||
|
||||
### Networking (6 services)
|
||||
|
||||
- 🟡 **[app](app.md)** - Bulgaria_vm
|
||||
- 🟡 **[apt-repo](apt-repo.md)** - Atlantis
|
||||
- 🟡 **[materialious](materialious.md)** - concord_nuc
|
||||
- 🟡 **[nginx](nginx.md)** - guava
|
||||
- 🟡 **[nginx_proxy_manager](nginx-proxy-manager.md)** - Atlantis
|
||||
- 🟢 **[sonic](sonic.md)** - homelab_vm
|
||||
|
||||
### Other (93 services)
|
||||
|
||||
- 🟢 **[api](api.md)** - Atlantis
|
||||
- 🟢 **[apt-cacher-ng](apt-cacher-ng.md)** - Calypso
|
||||
- 🟢 **[archivebox](archivebox.md)** - homelab_vm
|
||||
- 🟢 **[archivebox_scheduler](archivebox-scheduler.md)** - homelab_vm
|
||||
- 🟢 **[baikal](baikal.md)** - Atlantis
|
||||
- 🟢 **[bg-helper](bg-helper.md)** - concord_nuc
|
||||
- 🟢 **[binternet](binternet.md)** - homelab_vm
|
||||
- 🟢 **[chrome](chrome.md)** - homelab_vm
|
||||
- 🟢 **[cloudlfare-dns-updater](cloudlfare-dns-updater.md)** - things_to_try
|
||||
- 🟢 **[cocalc](cocalc.md)** - guava
|
||||
- 🟡 **[coturn](coturn.md)** - Atlantis
|
||||
- 🟡 **[cron](cron.md)** - Calypso
|
||||
- 🟢 **[dashdot](dashdot.md)** - homelab_vm
|
||||
- 🟢 **[ddns-crista-love](ddns-crista-love.md)** - guava
|
||||
- 🟢 **[ddns-thevish-proxied](ddns-thevish-proxied.md)** - Calypso
|
||||
- 🟢 **[ddns-thevish-unproxied](ddns-thevish-unproxied.md)** - Calypso
|
||||
- 🟢 **[ddns-updater](ddns-updater.md)** - homelab_vm
|
||||
- 🟢 **[ddns-vish-13340](ddns-vish-13340.md)** - concord_nuc
|
||||
- 🟢 **[ddns-vish-proxied](ddns-vish-proxied.md)** - Calypso
|
||||
- 🟢 **[ddns-vish-unproxied](ddns-vish-unproxied.md)** - Calypso
|
||||
- 🟢 **[deiucanta](deiucanta.md)** - anubis
|
||||
- 🟢 **[dockpeek](dockpeek.md)** - Atlantis
|
||||
- 🟡 **[documenso](documenso.md)** - Atlantis
|
||||
- 🟢 **[dozzle](dozzle.md)** - Atlantis
|
||||
- 🟢 **[drawio](drawio.md)** - homelab_vm
|
||||
- 🟢 **[droppy](droppy.md)** - Bulgaria_vm
|
||||
- 🟢 **[fasten](fasten.md)** - guava
|
||||
- 🟢 **[fenrus](fenrus.md)** - guava
|
||||
- 🟢 **[firefly-db](firefly-db.md)** - Atlantis
|
||||
- 🟢 **[firefly-db-backup](firefly-db-backup.md)** - Atlantis
|
||||
- 🟢 **[flaresolverr](flaresolverr.md)** - Calypso
|
||||
- 🟢 **[front](front.md)** - Atlantis
|
||||
- 🟢 **[gotenberg](gotenberg.md)** - Atlantis
|
||||
- 🟢 **[gotify](gotify.md)** - homelab_vm
|
||||
- 🟢 **[homeassistant](homeassistant.md)** - concord_nuc
|
||||
- 🟡 **[hyperpipe-back](hyperpipe-back.md)** - Atlantis
|
||||
- 🟡 **[hyperpipe-front](hyperpipe-front.md)** - Atlantis
|
||||
- 🟢 **[invidious-db](invidious-db.md)** - concord_nuc
|
||||
- 🟢 **[iperf3](iperf3.md)** - Calypso
|
||||
- 🟢 **[it-tools](it-tools.md)** - Atlantis
|
||||
- 🟢 **[jdownloader-2](jdownloader-2.md)** - Chicago_vm
|
||||
- 🟢 **[jellyseerr](jellyseerr.md)** - Calypso
|
||||
- 🟢 **[libreddit](libreddit.md)** - homelab_vm
|
||||
- 🟢 **[linuxgsm-l4d2](linuxgsm-l4d2.md)** - homelab_vm
|
||||
- 🟢 **[linuxgsm-pmc-bind](linuxgsm-pmc-bind.md)** - homelab_vm
|
||||
- 🟢 **[matrix-conduit](matrix-conduit.md)** - anubis
|
||||
- 🟢 **[matter-server](matter-server.md)** - concord_nuc
|
||||
- 🟢 **[meilisearch](meilisearch.md)** - homelab_vm
|
||||
- 🟢 **[metube](metube.md)** - Bulgaria_vm
|
||||
- 🟢 **[mongo](mongo.md)** - concord_nuc
|
||||
- 🟢 **[neko-rooms](neko-rooms.md)** - Chicago_vm
|
||||
- 🟡 **[netbox](netbox.md)** - Atlantis
|
||||
- 🟢 **[netbox-db](netbox-db.md)** - Atlantis
|
||||
- 🟢 **[ntfy](ntfy.md)** - homelab_vm
|
||||
- 🟡 **[openproject](openproject.md)** - homelab_vm
|
||||
- 🟡 **[openwebui](openwebui.md)** - guava
|
||||
- 🟢 **[pi.alert](pi.alert.md)** - anubis
|
||||
- 🟡 **[piped](piped.md)** - concord_nuc
|
||||
- 🟡 **[piped-back](piped-back.md)** - Atlantis
|
||||
- 🟡 **[piped-front](piped-front.md)** - Atlantis
|
||||
- 🟡 **[piped-frontend](piped-frontend.md)** - concord_nuc
|
||||
- 🟢 **[piped-proxy](piped-proxy.md)** - concord_nuc
|
||||
- 🟢 **[podgrab](podgrab.md)** - homelab_vm
|
||||
- 🟢 **[postgres](postgres.md)** - concord_nuc
|
||||
- 🟢 **[protonmail-bridge](protonmail-bridge.md)** - homelab_vm
|
||||
- 🟡 **[proxitok](proxitok.md)** - anubis
|
||||
- 🟢 **[rainloop](rainloop.md)** - Bulgaria_vm
|
||||
- 🟡 **[resume](resume.md)** - Calypso
|
||||
- 🟡 **[romm](romm.md)** - homelab_vm
|
||||
- 🟢 **[roundcube](roundcube.md)** - homelab_vm
|
||||
- 🟡 **[roundcube-protonmail](roundcube-protonmail.md)** - homelab_vm
|
||||
- 🟡 **[server](server.md)** - concord_nuc
|
||||
- 🟡 **[shlink](shlink.md)** - homelab_vm
|
||||
- 🟢 **[shlink-db](shlink-db.md)** - homelab_vm
|
||||
- 🟡 **[shlink-web](shlink-web.md)** - homelab_vm
|
||||
- 🟢 **[signer](signer.md)** - anubis
|
||||
- 🟢 **[snmp-exporter](snmp-exporter.md)** - setillo
|
||||
- 🟢 **[speedtest-exporter](speedtest-exporter.md)** - setillo
|
||||
- 🟡 **[stirling-pdf](stirling-pdf.md)** - Atlantis
|
||||
- 🟡 **[synapse](synapse.md)** - Chicago_vm
|
||||
- 🟢 **[synapse-db](synapse-db.md)** - Chicago_vm
|
||||
- 🟢 **[termix](termix.md)** - Atlantis
|
||||
- 🟢 **[watchtower](watchtower.md)** - concord_nuc
|
||||
- 🟢 **[watchyourlan](watchyourlan.md)** - homelab_vm
|
||||
- 🟢 **[web](web.md)** - homelab_vm
|
||||
- 🟢 **[webcheck](webcheck.md)** - homelab_vm
|
||||
- 🟢 **[webcord](webcord.md)** - homelab_vm
|
||||
- 🟡 **[webui](webui.md)** - contabo_vm
|
||||
- 🟢 **[wg-easy](wg-easy.md)** - concord_nuc
|
||||
- 🟢 **[wgeasy](wgeasy.md)** - Calypso
|
||||
- 🟢 **[whisparr](whisparr.md)** - Calypso
|
||||
- 🟢 **[wizarr](wizarr.md)** - Atlantis
|
||||
- 🟡 **[youtube_downloader](youtube-downloader.md)** - Atlantis
|
||||
|
||||
### Productivity (8 services)
|
||||
|
||||
- 🟢 **[actual_server](actual-server.md)** - Calypso
|
||||
- 🟡 **[dokuwiki](dokuwiki.md)** - Atlantis
|
||||
- 🟡 **[firefly](firefly.md)** - Calypso
|
||||
- 🟡 **[importer](importer.md)** - Calypso
|
||||
- 🟡 **[seafile](seafile.md)** - Calypso
|
||||
- 🟢 **[syncthing](syncthing.md)** - homelab_vm
|
||||
- 🟡 **[tika](tika.md)** - Atlantis
|
||||
- 🟡 **[webserver](webserver.md)** - Atlantis
|
||||
|
||||
### Security (3 services)
|
||||
|
||||
- 🟡 **[adguard](adguard.md)** - setillo
|
||||
- 🟡 **[pihole](pihole.md)** - Atlantis
|
||||
- 🔴 **[vaultwarden](vaultwarden.md)** - Atlantis
|
||||
|
||||
### Storage (6 services)
|
||||
|
||||
- 🟢 **[cache](cache.md)** - Calypso
|
||||
- 🟢 **[db](db.md)** - homelab_vm
|
||||
- 🟢 **[firefly-redis](firefly-redis.md)** - Atlantis
|
||||
- 🟢 **[minio](minio.md)** - Calypso
|
||||
- 🟢 **[netbox-redis](netbox-redis.md)** - Atlantis
|
||||
- 🟢 **[redis](redis.md)** - raspberry-pi-5-vish
|
||||
|
||||
|
||||
## 📊 Statistics
|
||||
|
||||
- **Total Services**: 159
|
||||
- **Categories**: 11
|
||||
- **Hosts**: 12
|
||||
|
||||
## 🔍 Quick Search
|
||||
|
||||
Use your browser's search function (Ctrl+F / Cmd+F) to quickly find specific services.
|
||||
|
||||
---
|
||||
|
||||
*This index is auto-generated. Last updated: 2025-11-17*
|
||||
190
docs/services/individual/actual-server.md
Normal file
190
docs/services/individual/actual-server.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Actual Server
|
||||
|
||||
**🟢 Productivity Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | Actual Budget |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Productivity / Finance |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `actualbudget/actual-server:latest` |
|
||||
| **Compose File** | `hosts/synology/calypso/actualbudget.yml` |
|
||||
| **External URL** | `https://actual.vish.gg` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Actual Budget is a local-first personal finance and budgeting application. It supports envelope budgeting, transaction tracking, and syncing across devices.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f actual_server
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Actual
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/5006' || exit 1
|
||||
timeout: 5s
|
||||
image: actualbudget/actual-server:latest
|
||||
ports:
|
||||
- 8304:5006
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker/actual:/data:rw
|
||||
|
||||
```
|
||||
|
||||
### SSO / Authentik Integration
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| **Authentik App Slug** | `actual-budget` |
|
||||
| **Authentik Provider PK** | `21` |
|
||||
| **Discovery URL** | `https://sso.vish.gg/application/o/actual-budget/.well-known/openid-configuration` |
|
||||
| **Redirect URI** | `https://actual.vish.gg/openid/callback` |
|
||||
| **User Creation** | `ACTUAL_USER_CREATION_MODE=login` (auto-creates on first SSO login) |
|
||||
|
||||
### Environment Variables
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8304 | 5006 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/actual` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8304:5006
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `timeout 10s bash -c ':> /dev/tcp/127.0.0.1/5006' || exit 1`
|
||||
**Check Interval**: 10s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 3
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f actual_server
|
||||
|
||||
# Restart service
|
||||
docker-compose restart actual_server
|
||||
|
||||
# Update service
|
||||
docker-compose pull actual_server
|
||||
docker-compose up -d actual_server
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec actual_server /bin/bash
|
||||
# or
|
||||
docker-compose exec actual_server /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for actual_server
|
||||
- **Docker Hub**: [actualbudget/actual-server:latest](https://hub.docker.com/r/actualbudget/actual-server:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD actual_server:
|
||||
- Nextcloud
|
||||
- Paperless-NGX
|
||||
- BookStack
|
||||
- Syncthing
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2026-03-16
|
||||
**Configuration Source**: `hosts/synology/calypso/actualbudget.yml`
|
||||
185
docs/services/individual/adguard.md
Normal file
185
docs/services/individual/adguard.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# Adguard
|
||||
|
||||
**🟡 Security Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | adguard |
|
||||
| **Host** | setillo |
|
||||
| **Category** | Security |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `adguard/adguardhome` |
|
||||
| **Compose File** | `setillo/adguard/adguard-stack.yaml` |
|
||||
| **Directory** | `setillo/adguard` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
AdGuard Home is a network-wide software for blocking ads & tracking.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (setillo)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd setillo/adguard
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f adguard
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: adguard
|
||||
environment:
|
||||
- TZ=America/Phoenix
|
||||
image: adguard/adguardhome
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- /volume1/docker/adguard/config:/opt/adguardhome/conf
|
||||
- /volume1/docker/adguard/data:/opt/adguardhome/work
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Phoenix` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/adguard/config` | `/opt/adguardhome/conf` | bind | Data storage |
|
||||
| `/volume1/docker/adguard/data` | `/opt/adguardhome/work` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Authentication issues**
|
||||
- Verify credentials are correct
|
||||
- Check LDAP/SSO configuration
|
||||
- Review authentication logs
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f adguard
|
||||
|
||||
# Restart service
|
||||
docker-compose restart adguard
|
||||
|
||||
# Update service
|
||||
docker-compose pull adguard
|
||||
docker-compose up -d adguard
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec adguard /bin/bash
|
||||
# or
|
||||
docker-compose exec adguard /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for adguard
|
||||
- **Docker Hub**: [adguard/adguardhome](https://hub.docker.com/r/adguard/adguardhome)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD adguard:
|
||||
- Vaultwarden
|
||||
- Authelia
|
||||
- Pi-hole
|
||||
- WireGuard
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `setillo/adguard/adguard-stack.yaml`
|
||||
113
docs/services/individual/anythingllm.md
Normal file
113
docs/services/individual/anythingllm.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# AnythingLLM
|
||||
|
||||
**Local RAG Document Assistant**
|
||||
|
||||
## Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | anythingllm |
|
||||
| **Host** | atlantis |
|
||||
| **Category** | AI |
|
||||
| **Docker Image** | `mintplexlabs/anythingllm:latest` |
|
||||
| **Compose File** | `hosts/synology/atlantis/anythingllm/docker-compose.yml` |
|
||||
| **Port** | 3101 |
|
||||
| **URL** | `http://192.168.0.200:3101` |
|
||||
|
||||
## Purpose
|
||||
|
||||
AnythingLLM is a self-hosted, local-first document assistant powered by RAG (Retrieval-Augmented Generation). It indexes documents into a vector database, then uses a local LLM to answer questions with context from those documents.
|
||||
|
||||
Primary use cases:
|
||||
- Semantic search across all Paperless-NGX documents (355 docs as of 2026-03-15)
|
||||
- Natural language Q&A over document library ("find my 2024 property tax assessment")
|
||||
- Document summarization ("summarize my medical records")
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
AnythingLLM (atlantis:3101)
|
||||
├── Embedder: built-in all-MiniLM-L6-v2 (CPU, runs locally)
|
||||
├── Vector DB: built-in LanceDB (no external service)
|
||||
├── LLM: Olares qwen3-coder:latest (30B, RTX 5090)
|
||||
│ └── Endpoint: https://a5be22681.vishinator.olares.com/v1
|
||||
└── Documents: Paperless-NGX archive (mounted read-only)
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration is done through the web UI on first launch at `http://192.168.0.200:3101`.
|
||||
|
||||
### LLM Provider Setup
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| **Provider** | Generic OpenAI |
|
||||
| **Base URL** | `https://a5be22681.vishinator.olares.com/v1` |
|
||||
| **Model** | `qwen3-coder:latest` |
|
||||
| **Token Limit** | 65536 |
|
||||
| **API Key** | (leave blank or any string — Olares auth is bypassed for this endpoint) |
|
||||
|
||||
### Embedding Setup
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| **Provider** | AnythingLLM (built-in) |
|
||||
| **Model** | all-MiniLM-L6-v2 |
|
||||
|
||||
No external embedding service needed. Runs on CPU inside the container.
|
||||
|
||||
### Vector Database
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| **Provider** | LanceDB (built-in) |
|
||||
|
||||
No external vector DB service needed. Data stored in the container volume.
|
||||
|
||||
## Volumes
|
||||
|
||||
| Container Path | Host Path | Purpose |
|
||||
|----------------|-----------|---------|
|
||||
| `/app/server/storage` | `/volume2/metadata/docker/anythingllm/storage` | Config, vector DB, user data |
|
||||
| `/documents/paperless-archive` | `/volume1/archive/paperless/backup_2026-03-15/media/documents/archive` | OCR'd Paperless PDFs (read-only) |
|
||||
| `/documents/paperless-originals` | `/volume1/archive/paperless/backup_2026-03-15/media/documents/originals` | Original Paperless uploads (read-only) |
|
||||
|
||||
## Document Import
|
||||
|
||||
After initial setup via the UI:
|
||||
|
||||
1. Create a workspace (e.g., "Documents")
|
||||
2. Open the workspace, click the upload/document icon
|
||||
3. Browse to `/documents/paperless-archive` — these are OCR'd PDFs with searchable text
|
||||
4. Select all files and embed them into the workspace
|
||||
5. AnythingLLM will chunk, embed, and index all documents
|
||||
|
||||
The archive directory contains 339 OCR'd PDFs; originals has 355 files (includes non-PDF formats that Tika processed).
|
||||
|
||||
## Paperless-NGX Backup
|
||||
|
||||
The documents served to AnythingLLM come from a Paperless-NGX backup taken 2026-03-15:
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Source** | calypso `/volume1/docker/paperlessngx/` |
|
||||
| **Destination** | atlantis `/volume1/archive/paperless/backup_2026-03-15/` |
|
||||
| **Size** | 1.6 GB |
|
||||
| **Documents** | 355 total (339 with OCR archive) |
|
||||
| **Previous backup** | `/volume1/archive/paperless/paperless_backup_2025-12-03.tar.gz` |
|
||||
|
||||
## Dependencies
|
||||
|
||||
- **Olares** must be running with qwen3-coder loaded (the only model on that box)
|
||||
- Olares endpoint must be accessible from atlantis LAN (192.168.0.145)
|
||||
- No dependency on atlantis Ollama (stopped — not needed)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Cause | Fix |
|
||||
|-------|-------|-----|
|
||||
| LLM responses fail | Olares qwen3-coder not running | Check: `ssh olares "sudo kubectl get pods -n ollamaserver-shared"` and scale up if needed |
|
||||
| Slow embedding | Expected on CPU (Ryzen V1780B) | Initial 355-doc ingestion may take a while; subsequent queries are fast |
|
||||
| Empty search results | Documents not yet embedded | Check workspace → documents tab, ensure files are uploaded and embedded |
|
||||
| 502 from Olares endpoint | Model loading / pod restarting | Wait 2-3 min, check Olares pod status |
|
||||
179
docs/services/individual/api.md
Normal file
179
docs/services/individual/api.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Api
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | api |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/getumbrel/llama-gpt-api:latest` |
|
||||
| **Compose File** | `Atlantis/llamagpt.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
api is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f api
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_add:
|
||||
- IPC_LOCK
|
||||
container_name: LlamaGPT-api
|
||||
cpu_shares: 768
|
||||
environment:
|
||||
MODEL: /models/llama-2-7b-chat.bin
|
||||
MODEL_DOWNLOAD_URL: https://huggingface.co/TheBloke/Nous-Hermes-Llama-2-7B-GGML/resolve/main/nous-hermes-llama-2-7b.ggmlv3.q4_0.bin
|
||||
USE_MLOCK: 1
|
||||
hostname: llamagpt-api
|
||||
image: ghcr.io/getumbrel/llama-gpt-api:latest
|
||||
mem_limit: 8g
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `MODEL` | `/models/llama-2-7b-chat.bin` | Configuration variable |
|
||||
| `MODEL_DOWNLOAD_URL` | `https://huggingface.co/TheBloke/Nous-Hermes-Llama-2-7B-GGML/resolve/main/nous-hermes-llama-2-7b.ggmlv3.q4_0.bin` | Configuration variable |
|
||||
| `USE_MLOCK` | `1` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f api
|
||||
|
||||
# Restart service
|
||||
docker-compose restart api
|
||||
|
||||
# Update service
|
||||
docker-compose pull api
|
||||
docker-compose up -d api
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec api /bin/bash
|
||||
# or
|
||||
docker-compose exec api /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for api
|
||||
- **Docker Hub**: [ghcr.io/getumbrel/llama-gpt-api:latest](https://hub.docker.com/r/ghcr.io/getumbrel/llama-gpt-api:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/llamagpt.yml`
|
||||
183
docs/services/individual/app.md
Normal file
183
docs/services/individual/app.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# App
|
||||
|
||||
**🟡 Networking Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | app |
|
||||
| **Host** | Bulgaria_vm |
|
||||
| **Category** | Networking |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `jc21/nginx-proxy-manager:latest` |
|
||||
| **Compose File** | `Bulgaria_vm/nginx_proxy_manager.yml` |
|
||||
| **Directory** | `Bulgaria_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
app is a networking service that manages network traffic, routing, or connectivity.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Bulgaria_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Bulgaria_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f app
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
ports:
|
||||
- 80:80
|
||||
- 8181:81
|
||||
- 443:443
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 80 | 80 | TCP | HTTP web interface |
|
||||
| 8181 | 81 | TCP | Service port |
|
||||
| 443 | 443 | TCP | HTTPS web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `./data` | `/data` | bind | Application data |
|
||||
| `./letsencrypt` | `/etc/letsencrypt` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Bulgaria_vm:80`
|
||||
- **HTTPS**: `https://Bulgaria_vm:443`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f app
|
||||
|
||||
# Restart service
|
||||
docker-compose restart app
|
||||
|
||||
# Update service
|
||||
docker-compose pull app
|
||||
docker-compose up -d app
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec app /bin/bash
|
||||
# or
|
||||
docker-compose exec app /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for app
|
||||
- **Docker Hub**: [jc21/nginx-proxy-manager:latest](https://hub.docker.com/r/jc21/nginx-proxy-manager:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the networking category on Bulgaria_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Bulgaria_vm/nginx_proxy_manager.yml`
|
||||
186
docs/services/individual/apt-cacher-ng.md
Normal file
186
docs/services/individual/apt-cacher-ng.md
Normal file
@@ -0,0 +1,186 @@
|
||||
# Apt Cacher Ng
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | apt-cacher-ng |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `sameersbn/apt-cacher-ng:latest` |
|
||||
| **Compose File** | `Calypso/apt-cacher-ng/apt-cacher-ng.yml` |
|
||||
| **Directory** | `Calypso/apt-cacher-ng` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
apt-cacher-ng is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/apt-cacher-ng
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f apt-cacher-ng
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: apt-cacher-ng
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: sameersbn/apt-cacher-ng:latest
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- 3142:3142
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/docker/apt-cacher-ng/cache:/var/cache/apt-cacher-ng
|
||||
- /volume1/docker/apt-cacher-ng/log:/var/log/apt-cacher-ng
|
||||
- /volume1/docker/apt-cacher-ng/config:/etc/apt-cacher-ng
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3142 | 3142 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/apt-cacher-ng/cache` | `/var/cache/apt-cacher-ng` | bind | Cache data |
|
||||
| `/volume1/docker/apt-cacher-ng/log` | `/var/log/apt-cacher-ng` | bind | System logs |
|
||||
| `/volume1/docker/apt-cacher-ng/config` | `/etc/apt-cacher-ng` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 3142:3142
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f apt-cacher-ng
|
||||
|
||||
# Restart service
|
||||
docker-compose restart apt-cacher-ng
|
||||
|
||||
# Update service
|
||||
docker-compose pull apt-cacher-ng
|
||||
docker-compose up -d apt-cacher-ng
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec apt-cacher-ng /bin/bash
|
||||
# or
|
||||
docker-compose exec apt-cacher-ng /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for apt-cacher-ng
|
||||
- **Docker Hub**: [sameersbn/apt-cacher-ng:latest](https://hub.docker.com/r/sameersbn/apt-cacher-ng:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/apt-cacher-ng/apt-cacher-ng.yml`
|
||||
179
docs/services/individual/apt-repo.md
Normal file
179
docs/services/individual/apt-repo.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Apt Repo
|
||||
|
||||
**🟡 Networking Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | apt-repo |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Networking |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `nginx:alpine` |
|
||||
| **Compose File** | `Atlantis/repo_nginx.yaml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
apt-repo is a networking service that manages network traffic, routing, or connectivity.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f apt-repo
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: apt-repo
|
||||
image: nginx:alpine
|
||||
ports:
|
||||
- 9661:80
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/archive/repo/mirror:/usr/share/nginx/html:ro
|
||||
- /volume1/docker/apt-repo/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9661 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/archive/repo/mirror` | `/usr/share/nginx/html` | bind | Data storage |
|
||||
| `/volume1/docker/apt-repo/default.conf` | `/etc/nginx/conf.d/default.conf` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:9661`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f apt-repo
|
||||
|
||||
# Restart service
|
||||
docker-compose restart apt-repo
|
||||
|
||||
# Update service
|
||||
docker-compose pull apt-repo
|
||||
docker-compose up -d apt-repo
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec apt-repo /bin/bash
|
||||
# or
|
||||
docker-compose exec apt-repo /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for apt-repo
|
||||
- **Docker Hub**: [Official apt-repo](https://hub.docker.com/_/nginx:alpine)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the networking category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/repo_nginx.yaml`
|
||||
184
docs/services/individual/archivebox-scheduler.md
Normal file
184
docs/services/individual/archivebox-scheduler.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Archivebox Scheduler
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | archivebox_scheduler |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `archivebox/archivebox:latest` |
|
||||
| **Compose File** | `homelab_vm/archivebox.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
archivebox_scheduler is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f archivebox_scheduler
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command: schedule --foreground --update --every=day
|
||||
container_name: archivebox_scheduler
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TIMEOUT=120
|
||||
- SEARCH_BACKEND_ENGINE=sonic
|
||||
- SEARCH_BACKEND_HOST_NAME=sonic
|
||||
- SEARCH_BACKEND_PASSWORD="REDACTED_PASSWORD"
|
||||
image: archivebox/archivebox:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1000` | User ID for file permissions |
|
||||
| `PGID` | `1000` | Group ID for file permissions |
|
||||
| `TIMEOUT` | `120` | Configuration variable |
|
||||
| `SEARCH_BACKEND_ENGINE` | `sonic` | Configuration variable |
|
||||
| `SEARCH_BACKEND_HOST_NAME` | `sonic` | Configuration variable |
|
||||
| `SEARCH_BACKEND_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `./data` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f archivebox_scheduler
|
||||
|
||||
# Restart service
|
||||
docker-compose restart archivebox_scheduler
|
||||
|
||||
# Update service
|
||||
docker-compose pull archivebox_scheduler
|
||||
docker-compose up -d archivebox_scheduler
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec archivebox_scheduler /bin/bash
|
||||
# or
|
||||
docker-compose exec archivebox_scheduler /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for archivebox_scheduler
|
||||
- **Docker Hub**: [archivebox/archivebox:latest](https://hub.docker.com/r/archivebox/archivebox:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/archivebox.yaml`
|
||||
204
docs/services/individual/archivebox.md
Normal file
204
docs/services/individual/archivebox.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Archivebox
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | archivebox |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `archivebox/archivebox:latest` |
|
||||
| **Compose File** | `homelab_vm/archivebox.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
archivebox is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f archivebox
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: archivebox
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ADMIN_USERNAME=vish
|
||||
- ADMIN_PASSWORD="REDACTED_PASSWORD"
|
||||
- ALLOWED_HOSTS=*
|
||||
- CSRF_TRUSTED_ORIGINS=http://localhost:7254
|
||||
- PUBLIC_INDEX=True
|
||||
- PUBLIC_SNAPSHOTS=True
|
||||
- PUBLIC_ADD_VIEW=False
|
||||
- SEARCH_BACKEND_ENGINE=sonic
|
||||
- SEARCH_BACKEND_HOST_NAME=sonic
|
||||
- SEARCH_BACKEND_PASSWORD="REDACTED_PASSWORD"
|
||||
image: archivebox/archivebox:latest
|
||||
ports:
|
||||
- 7254:8000
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1000` | User ID for file permissions |
|
||||
| `PGID` | `1000` | Group ID for file permissions |
|
||||
| `ADMIN_USERNAME` | `vish` | Configuration variable |
|
||||
| `ADMIN_PASSWORD` | `***MASKED***` | Administrator password |
|
||||
| `ALLOWED_HOSTS` | `*` | Configuration variable |
|
||||
| `CSRF_TRUSTED_ORIGINS` | `http://localhost:7254` | Configuration variable |
|
||||
| `PUBLIC_INDEX` | `True` | Configuration variable |
|
||||
| `PUBLIC_SNAPSHOTS` | `True` | Configuration variable |
|
||||
| `PUBLIC_ADD_VIEW` | `False` | Configuration variable |
|
||||
| `SEARCH_BACKEND_ENGINE` | `sonic` | Configuration variable |
|
||||
| `SEARCH_BACKEND_HOST_NAME` | `sonic` | Configuration variable |
|
||||
| `SEARCH_BACKEND_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 7254 | 8000 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `./data` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:7254`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f archivebox
|
||||
|
||||
# Restart service
|
||||
docker-compose restart archivebox
|
||||
|
||||
# Update service
|
||||
docker-compose pull archivebox
|
||||
docker-compose up -d archivebox
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec archivebox /bin/bash
|
||||
# or
|
||||
docker-compose exec archivebox /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for archivebox
|
||||
- **Docker Hub**: [archivebox/archivebox:latest](https://hub.docker.com/r/archivebox/archivebox:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/archivebox.yaml`
|
||||
251
docs/services/individual/audiobookshelf.md
Normal file
251
docs/services/individual/audiobookshelf.md
Normal file
@@ -0,0 +1,251 @@
|
||||
# Audiobookshelf
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | audiobookshelf |
|
||||
| **Host** | Atlantis (Synology) |
|
||||
| **Category** | Media / Books |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/advplyr/audiobookshelf:latest` |
|
||||
| **Compose File** | `hosts/synology/atlantis/arr-suite/docker-compose.yml` |
|
||||
| **Directory** | `hosts/synology/atlantis/arr-suite` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Audiobookshelf is a self-hosted audiobook and podcast server with mobile apps. Think of it as "Plex for audiobooks" - it provides a beautiful interface for browsing, streaming, and tracking progress across your audiobook and ebook library. It syncs progress across all devices and has native iOS/Android apps.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Audiobooks/ebooks/podcasts organized in folders
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd hosts/synology/atlantis/arr-suite
|
||||
|
||||
# Start the service
|
||||
docker-compose -f docker-compose.yml up -d audiobookshelf
|
||||
|
||||
# Check service status
|
||||
docker-compose -f docker-compose.yml ps
|
||||
|
||||
# View logs
|
||||
docker-compose -f docker-compose.yml logs -f audiobookshelf
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
audiobookshelf:
|
||||
image: ghcr.io/advplyr/audiobookshelf:latest
|
||||
container_name: audiobookshelf
|
||||
environment:
|
||||
- PUID=1029
|
||||
- PGID=100
|
||||
- TZ=America/Los_Angeles
|
||||
volumes:
|
||||
- /volume2/metadata/docker2/audiobookshelf:/config
|
||||
- /volume1/data/media/audiobooks:/audiobooks
|
||||
- /volume1/data/media/podcasts:/podcasts
|
||||
- /volume1/data/media/ebooks:/ebooks
|
||||
ports:
|
||||
- "13378:80"
|
||||
networks:
|
||||
media2_net:
|
||||
ipv4_address: 172.24.0.16
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: always
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1029` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 13378 | 80 | TCP | Web UI |
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume2/metadata/docker2/audiobookshelf` | `/config` | bind | Configuration & database |
|
||||
| `/volume1/data/media/audiobooks` | `/audiobooks` | bind | Audiobook library |
|
||||
| `/volume1/data/media/podcasts` | `/podcasts` | bind | Podcast library |
|
||||
| `/volume1/data/media/ebooks` | `/ebooks` | bind | Ebook library |
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
| Interface | URL |
|
||||
|-----------|-----|
|
||||
| Web UI | `http://192.168.0.200:13378` |
|
||||
|
||||
### Mobile Apps
|
||||
- **iOS**: Search "Audiobookshelf" on App Store
|
||||
- **Android**: Search "Audiobookshelf" on Play Store
|
||||
- **Server Address**: `http://192.168.0.200:13378`
|
||||
|
||||
## 🔧 Initial Setup
|
||||
|
||||
### 1. Create Admin Account
|
||||
On first launch, you'll be prompted to create an admin account.
|
||||
|
||||
### 2. Create Libraries
|
||||
Go to **Settings → Libraries** and create:
|
||||
|
||||
| Library Name | Type | Folder Path |
|
||||
|--------------|------|-------------|
|
||||
| Audiobooks | Audiobook | `/audiobooks` |
|
||||
| Ebooks | Book | `/ebooks` |
|
||||
| Podcasts | Podcast | `/podcasts` |
|
||||
|
||||
### 3. Enable Folder Watching
|
||||
In each library's settings, enable **Watch for changes** to auto-import new files when LazyLibrarian downloads them.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured (no-new-privileges)
|
||||
- ✅ Running with specific user/group IDs
|
||||
- ⚠️ Consider setting up authentication for remote access
|
||||
- ⚠️ Use HTTPS via reverse proxy for external access
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 256MB
|
||||
- **Recommended RAM**: 512MB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by library size (metadata + cover art cache)
|
||||
|
||||
### Resource Monitoring
|
||||
```bash
|
||||
docker stats audiobookshelf
|
||||
```
|
||||
|
||||
## ✨ Key Features
|
||||
|
||||
- **Progress Sync**: Automatically syncs listening/reading progress across devices
|
||||
- **Chapter Support**: Navigate audiobooks by chapter
|
||||
- **Multiple Users**: Each user has their own library progress
|
||||
- **Podcast Support**: Subscribe and auto-download podcasts
|
||||
- **Ebook Support**: Read ebooks directly in the app
|
||||
- **Offline Mode**: Download audiobooks to mobile devices
|
||||
- **Metadata Matching**: Auto-fetches book metadata and cover art
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Books not appearing**
|
||||
- Check file permissions match PUID/PGID
|
||||
- Verify folder paths are correct
|
||||
- Manually scan library: Library → Scan
|
||||
|
||||
**Progress not syncing**
|
||||
- Ensure you're logged into the same account
|
||||
- Check network connectivity
|
||||
- Force sync in mobile app settings
|
||||
|
||||
**Mobile app can't connect**
|
||||
- Verify server address is correct
|
||||
- Check firewall allows port 13378
|
||||
- Ensure device is on same network (or use VPN)
|
||||
|
||||
**Metadata not found**
|
||||
- Try manual match: Book → Match
|
||||
- Check audiobook folder naming (Author - Title format works best)
|
||||
- Ensure file metadata tags are correct
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# View real-time logs
|
||||
docker logs -f audiobookshelf
|
||||
|
||||
# Restart service
|
||||
docker restart audiobookshelf
|
||||
|
||||
# Update service
|
||||
docker pull ghcr.io/advplyr/audiobookshelf:latest
|
||||
docker restart audiobookshelf
|
||||
|
||||
# Backup database
|
||||
cp -r /volume2/metadata/docker2/audiobookshelf /backup/audiobookshelf-$(date +%Y%m%d)
|
||||
```
|
||||
|
||||
## 📂 Recommended Folder Structure
|
||||
|
||||
For best metadata matching:
|
||||
```
|
||||
/audiobooks/
|
||||
├── Author Name/
|
||||
│ ├── Book Title/
|
||||
│ │ ├── cover.jpg (optional)
|
||||
│ │ ├── desc.txt (optional)
|
||||
│ │ └── *.mp3 or *.m4b
|
||||
│ └── Another Book/
|
||||
│ └── ...
|
||||
|
||||
/ebooks/
|
||||
├── Author Name/
|
||||
│ ├── Book Title.epub
|
||||
│ └── Another Book.pdf
|
||||
```
|
||||
|
||||
## API Access
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **URL** | http://192.168.0.200:13378 |
|
||||
| **API Token (arrssuite key)** | `REDACTED_ABS_API_TOKEN` |
|
||||
|
||||
```bash
|
||||
ABS="http://192.168.0.200:13378"
|
||||
ABS_KEY="REDACTED_ABS_API_TOKEN"
|
||||
|
||||
# List libraries
|
||||
curl -s "$ABS/api/libraries" -H "Authorization: Bearer $ABS_KEY" | python3 -m json.tool
|
||||
|
||||
# List items in a library
|
||||
curl -s "$ABS/api/libraries/<library-id>/items" -H "Authorization: Bearer $ABS_KEY" | python3 -m json.tool
|
||||
|
||||
# Trigger scan on a library
|
||||
curl -s -X POST "$ABS/api/libraries/<library-id>/scan" -H "Authorization: Bearer $ABS_KEY"
|
||||
```
|
||||
|
||||
### Library IDs
|
||||
|
||||
| Library | ID |
|
||||
|---------|----|
|
||||
| Audiobook | `d36776eb-fe81-467f-8fee-19435ee2827b` |
|
||||
| Ebooks | `5af23ed3-f69d-479b-88bc-1c4911c99d2d` |
|
||||
| Podcast | `6fc11431-ec84-4c96-8bec-b2638fff57e7` |
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: [Audiobookshelf Docs](https://www.audiobookshelf.org/docs)
|
||||
- **GitHub**: [advplyr/audiobookshelf](https://github.com/advplyr/audiobookshelf)
|
||||
- **Discord**: Active community support
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD Audiobookshelf:
|
||||
- LazyLibrarian (automated downloads)
|
||||
- Calibre (ebook management)
|
||||
- Prowlarr (indexer management)
|
||||
|
||||
---
|
||||
|
||||
*Last Updated*: 2025-01-20
|
||||
*Configuration Source*: `hosts/synology/atlantis/arr-suite/docker-compose.yml`
|
||||
220
docs/services/individual/authentik.md
Normal file
220
docs/services/individual/authentik.md
Normal file
@@ -0,0 +1,220 @@
|
||||
# Authentik - SSO / Identity Provider
|
||||
|
||||
**Host**: Calypso (DS723+)
|
||||
**Domain**: `sso.vish.gg`
|
||||
**Ports**: 9000 (HTTP), 9443 (HTTPS)
|
||||
**Compose File**: `Calypso/authentik/docker-compose.yaml`
|
||||
|
||||
## Overview
|
||||
|
||||
Authentik provides Single Sign-On (SSO) and identity management for homelab services. It supports:
|
||||
- OAuth2 / OpenID Connect
|
||||
- SAML 2.0
|
||||
- LDAP
|
||||
- Proxy authentication (forward auth)
|
||||
- SCIM provisioning
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Cloudflare DNS │
|
||||
│ (sso.vish.gg → Calypso) │
|
||||
└─────────────────────┬───────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Synology Reverse Proxy │
|
||||
│ (sso.vish.gg → localhost:9000) │
|
||||
└─────────────────────┬───────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Authentik Stack │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ authentik- │ │ authentik- │ │ authentik- │ │
|
||||
│ │ server │◄─┤ worker │ │ redis │ │
|
||||
│ │ (9000) │ │ │ │ │ │
|
||||
│ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
|
||||
│ │ │ │
|
||||
│ ▼ ▼ │
|
||||
│ ┌────────────────────────────────┐ │
|
||||
│ │ authentik-db │ │
|
||||
│ │ (PostgreSQL 16) │ │
|
||||
│ └────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Initial Setup
|
||||
|
||||
### 1. Deploy the Stack
|
||||
|
||||
Deploy via Portainer GitOps - the stack will auto-pull from the repository.
|
||||
|
||||
### 2. Configure DNS
|
||||
|
||||
Add DNS record in Cloudflare:
|
||||
- **Type**: A or CNAME
|
||||
- **Name**: sso
|
||||
- **Target**: Your Calypso IP or DDNS hostname
|
||||
- **Proxy**: Orange cloud ON (recommended for DDoS protection)
|
||||
|
||||
### 3. Configure Synology Reverse Proxy
|
||||
|
||||
In DSM → Control Panel → Login Portal → Advanced → Reverse Proxy:
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Description | Authentik SSO |
|
||||
| Source Protocol | HTTPS |
|
||||
| Source Hostname | sso.vish.gg |
|
||||
| Source Port | 443 |
|
||||
| Enable HSTS | Yes |
|
||||
| Destination Protocol | HTTP |
|
||||
| Destination Hostname | localhost |
|
||||
| Destination Port | 9000 |
|
||||
|
||||
**Custom Headers** (Add these):
|
||||
| Header | Value |
|
||||
|--------|-------|
|
||||
| X-Forwarded-Proto | $scheme |
|
||||
| X-Forwarded-For | $proxy_add_x_forwarded_for |
|
||||
| Host | $host |
|
||||
|
||||
**WebSocket** (Enable):
|
||||
- Check "Enable WebSocket"
|
||||
|
||||
### 4. Initial Admin Setup
|
||||
|
||||
1. Navigate to `https://sso.vish.gg/if/flow/initial-setup/`
|
||||
2. Create your admin account (default username: akadmin)
|
||||
3. Set a strong password
|
||||
4. Complete the setup wizard
|
||||
|
||||
## Integrating Services
|
||||
|
||||
### Grafana (gf.vish.gg)
|
||||
|
||||
1. **In Authentik**: Create OAuth2/OIDC Provider
|
||||
- Name: Grafana
|
||||
- Client ID: (copy this)
|
||||
- Client Secret: (generate and copy)
|
||||
- Redirect URIs: `https://gf.vish.gg/login/generic_oauth`
|
||||
|
||||
2. **In Grafana** (grafana.ini or environment):
|
||||
```ini
|
||||
[auth.generic_oauth]
|
||||
enabled = true
|
||||
name = Authentik
|
||||
allow_sign_up = true
|
||||
client_id = YOUR_CLIENT_ID
|
||||
client_secret = YOUR_CLIENT_SECRET
|
||||
scopes = openid profile email
|
||||
auth_url = https://sso.vish.gg/application/o/authorize/
|
||||
token_url = https://sso.vish.gg/application/o/token/
|
||||
api_url = https://sso.vish.gg/application/o/userinfo/
|
||||
role_attribute_path = contains(groups[*], 'Grafana Admins') && 'Admin' || 'Viewer'
|
||||
```
|
||||
|
||||
### Gitea (git.vish.gg)
|
||||
|
||||
1. **In Authentik**: Create OAuth2/OIDC Provider
|
||||
- Name: Gitea
|
||||
- Redirect URIs: `https://git.vish.gg/user/oauth2/authentik/callback`
|
||||
|
||||
2. **In Gitea**: Settings → Authentication → Add OAuth2
|
||||
- Provider: OpenID Connect
|
||||
- Client ID: (from Authentik)
|
||||
- Client Secret: (from Authentik)
|
||||
- OpenID Connect Auto Discovery URL: `https://sso.vish.gg/application/o/gitea/.well-known/openid-configuration`
|
||||
|
||||
### Seafile (seafile.vish.gg)
|
||||
|
||||
1. **In Authentik**: Create OAuth2/OIDC Provider
|
||||
- Name: Seafile
|
||||
- Redirect URIs: `https://seafile.vish.gg/oauth/callback/`
|
||||
|
||||
2. **In Seafile** (seahub_settings.py):
|
||||
```python
|
||||
ENABLE_OAUTH = True
|
||||
OAUTH_ENABLE_INSECURE_TRANSPORT = False
|
||||
OAUTH_CLIENT_ID = 'YOUR_CLIENT_ID'
|
||||
OAUTH_CLIENT_SECRET = 'YOUR_CLIENT_SECRET'
|
||||
OAUTH_REDIRECT_URL = 'https://seafile.vish.gg/oauth/callback/'
|
||||
OAUTH_PROVIDER_DOMAIN = 'sso.vish.gg'
|
||||
OAUTH_AUTHORIZATION_URL = 'https://sso.vish.gg/application/o/authorize/'
|
||||
OAUTH_TOKEN_URL = 'https://sso.vish.gg/application/o/token/'
|
||||
OAUTH_USER_INFO_URL = 'https://sso.vish.gg/application/o/userinfo/'
|
||||
OAUTH_SCOPE = ['openid', 'profile', 'email']
|
||||
OAUTH_ATTRIBUTE_MAP = {
|
||||
'id': (True, 'email'),
|
||||
'email': (True, 'email'),
|
||||
'name': (False, 'name'),
|
||||
}
|
||||
```
|
||||
|
||||
### Forward Auth (Proxy Provider)
|
||||
|
||||
For services that don't support OAuth natively, use Authentik's proxy provider:
|
||||
|
||||
1. **In Authentik**: Create Proxy Provider
|
||||
- Name: Protected Service
|
||||
- External Host: https://service.vish.gg
|
||||
- Mode: Forward auth (single application)
|
||||
|
||||
2. **In Synology Reverse Proxy**: Add auth headers
|
||||
- Forward requests to Authentik's outpost first
|
||||
|
||||
## Backup & Recovery
|
||||
|
||||
### Data Locations
|
||||
| Data | Path | Backup Priority |
|
||||
|------|------|-----------------|
|
||||
| Database | `/volume1/docker/authentik/database` | Critical |
|
||||
| Media | `/volume1/docker/authentik/media` | High |
|
||||
| Templates | `/volume1/docker/authentik/templates` | Medium |
|
||||
|
||||
### Backup Command
|
||||
```bash
|
||||
# On Calypso via SSH
|
||||
docker exec Authentik-DB pg_dump -U authentik authentik > /volume1/backups/authentik_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
### Restore
|
||||
```bash
|
||||
docker exec -i Authentik-DB psql -U authentik authentik < backup.sql
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Check Logs
|
||||
```bash
|
||||
docker logs Authentik-SERVER
|
||||
docker logs Authentik-WORKER
|
||||
```
|
||||
|
||||
### Database Connection Issues
|
||||
```bash
|
||||
docker exec Authentik-DB pg_isready -U authentik
|
||||
```
|
||||
|
||||
### Reset Admin Password
|
||||
```bash
|
||||
docker exec -it Authentik-SERVER ak create_recovery_key 10 akadmin
|
||||
```
|
||||
This creates a recovery link valid for 10 minutes.
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Authentik is the gateway to all services - protect it well
|
||||
- Use a strong admin password
|
||||
- Enable 2FA for admin accounts
|
||||
- Regularly rotate the AUTHENTIK_SECRET_KEY (requires re-authentication)
|
||||
- Keep the PostgreSQL password secure
|
||||
- Consider IP restrictions in Cloudflare for admin paths
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [Official Docs](https://docs.goauthentik.io/)
|
||||
- [OAuth2 Provider Setup](https://docs.goauthentik.io/docs/providers/oauth2/)
|
||||
- [Proxy Provider Setup](https://docs.goauthentik.io/docs/providers/proxy/)
|
||||
179
docs/services/individual/baikal.md
Normal file
179
docs/services/individual/baikal.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Baikal
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | baikal |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ckulka/baikal` |
|
||||
| **Compose File** | `Atlantis/baikal/baikal.yaml` |
|
||||
| **Directory** | `Atlantis/baikal` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
baikal is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/baikal
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f baikal
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: baikal
|
||||
image: ckulka/baikal
|
||||
ports:
|
||||
- 12852:80
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/docker/baikal/config:/var/www/baikal/config
|
||||
- /volume1/docker/baikal/html:/var/www/baikal/Specific
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 12852 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/baikal/config` | `/var/www/baikal/config` | bind | Configuration files |
|
||||
| `/volume1/docker/baikal/html` | `/var/www/baikal/Specific` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:12852`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f baikal
|
||||
|
||||
# Restart service
|
||||
docker-compose restart baikal
|
||||
|
||||
# Update service
|
||||
docker-compose pull baikal
|
||||
docker-compose up -d baikal
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec baikal /bin/bash
|
||||
# or
|
||||
docker-compose exec baikal /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for baikal
|
||||
- **Docker Hub**: [ckulka/baikal](https://hub.docker.com/r/ckulka/baikal)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/baikal/baikal.yaml`
|
||||
371
docs/services/individual/bazarr-enhanced.md
Normal file
371
docs/services/individual/bazarr-enhanced.md
Normal file
@@ -0,0 +1,371 @@
|
||||
# Bazarr - Enhanced Subtitle Management
|
||||
|
||||
**🟢 Media Service - Subtitle Management**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | bazarr |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `linuxserver/bazarr:latest` |
|
||||
| **Compose File** | `Atlantis/arr-suite/docker-compose.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
| **Port** | 6767 |
|
||||
| **API Key** | `057875988c90c9b05722df7ff5fedc69` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles for your media library. It automatically searches for and downloads subtitles in your preferred languages, with support for multiple subtitle providers and advanced language profiles.
|
||||
|
||||
## ✨ Recent Enhancements (February 2025)
|
||||
|
||||
### 🚀 **Subtitle Provider Expansion (4 → 7 providers)**
|
||||
|
||||
**Previous Setup (4 providers):**
|
||||
- ✅ REDACTED_APP_PASSWORD (VIP account)
|
||||
- ✅ yifysubtitles
|
||||
- ✅ animetosho
|
||||
- ✅ podnapisi
|
||||
|
||||
**NEW Providers Added (3 additional):**
|
||||
- ✅ **addic7ed** - Premium TV show subtitles with fast releases
|
||||
- ✅ **subf2m** - Comprehensive movie subtitle coverage
|
||||
- ✅ **legendasdivx** - International content specialization
|
||||
|
||||
### 🎬 **Optimized for Specific Use Cases:**
|
||||
|
||||
**Anime Content**:
|
||||
- animetosho provider handles dual-audio anime perfectly
|
||||
- English subtitles prioritized when available
|
||||
- Japanese fallback support for anime-only content
|
||||
|
||||
**International Films** (e.g., "Cold War"):
|
||||
- Enhanced coverage for non-English original language films
|
||||
- legendasdivx and subf2m provide better international subtitle sources
|
||||
- VIP OpenSubtitles account ensures premium access
|
||||
|
||||
**TV Shows**:
|
||||
- addic7ed provides high-quality, fast TV show subtitles
|
||||
- Community-driven quality control
|
||||
- Rapid release timing for popular series
|
||||
|
||||
### 🔧 **Configuration Improvements:**
|
||||
|
||||
1. **Enhanced Provider Coverage**: 75% increase in subtitle sources
|
||||
2. **Language Profile**: English-focused with proper fallback handling
|
||||
3. **Quality Scoring**: Optimized minimum scores (80 for series, 60 for movies)
|
||||
4. **VIP Account Utilization**: OpenSubtitles VIP credentials properly configured
|
||||
5. **Anime Support**: animetosho provider optimized for anime content
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Sonarr and Radarr configured
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd /volume1/docker/arr-suite
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d bazarr
|
||||
|
||||
# Check service status
|
||||
docker-compose ps bazarr
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f bazarr
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
bazarr:
|
||||
container_name: bazarr
|
||||
environment:
|
||||
- PUID=1027
|
||||
- PGID=65536
|
||||
- TZ=America/Los_Angeles
|
||||
- UMASK=022
|
||||
image: linuxserver/bazarr:latest
|
||||
networks:
|
||||
media_net:
|
||||
ipv4_address: 172.23.0.9
|
||||
ports:
|
||||
- 6767:6767/tcp
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker2/bazarr:/config
|
||||
- /volume1/data:/data
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1027` | User ID for file permissions |
|
||||
| `PGID` | `65536` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `UMASK` | `022` | File permission mask |
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 6767 | 6767 | TCP | Web interface and API |
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker2/bazarr` | `/config` | bind | Configuration files and database |
|
||||
| `/volume1/data` | `/data` | bind | Media library access |
|
||||
|
||||
## 🎛️ Advanced Configuration
|
||||
|
||||
### Subtitle Providers Configuration
|
||||
|
||||
**Active Providers (7 total):**
|
||||
|
||||
1. **OpenSubtitles.com (VIP)**
|
||||
- Premium account with enhanced limits
|
||||
- Comprehensive language support
|
||||
- High-quality community subtitles
|
||||
|
||||
2. **addic7ed**
|
||||
- Specializes in TV show subtitles
|
||||
- Fast release timing
|
||||
- Community-moderated quality
|
||||
|
||||
3. **yifysubtitles**
|
||||
- Movie-focused provider
|
||||
- Good coverage for popular films
|
||||
- Reliable availability
|
||||
|
||||
4. **animetosho**
|
||||
- Anime-specialized provider
|
||||
- Handles dual-audio content
|
||||
- Japanese and English support
|
||||
|
||||
5. **podnapisi**
|
||||
- Multi-language support
|
||||
- European content strength
|
||||
- Reliable subtitle timing
|
||||
|
||||
6. **subf2m**
|
||||
- Movie subtitle coverage
|
||||
- Fast release availability
|
||||
- International film support
|
||||
|
||||
7. **legendasdivx**
|
||||
- Portuguese/Spanish specialization
|
||||
- International film coverage
|
||||
- Non-English content strength
|
||||
|
||||
### Language Profile Configuration
|
||||
|
||||
**Current Profile: "My language profile"**
|
||||
- **Primary Language**: English
|
||||
- **Cutoff Score**: 65535 (maximum quality)
|
||||
- **Minimum Score**:
|
||||
- Series: 80
|
||||
- Movies: 60
|
||||
- **Fallback Support**: Enabled for original language content
|
||||
|
||||
### Quality Scoring System
|
||||
|
||||
**Optimized Scoring for Different Content Types:**
|
||||
|
||||
**TV Series (Minimum Score: 80)**
|
||||
- Prioritizes addic7ed and OpenSubtitles
|
||||
- Fast release timing valued
|
||||
- Community quality control preferred
|
||||
|
||||
**Movies (Minimum Score: 60)**
|
||||
- Broader provider acceptance
|
||||
- International content support
|
||||
- Original language preservation
|
||||
|
||||
**Anime Content**
|
||||
- animetosho provider prioritized
|
||||
- Dual-audio support
|
||||
- Japanese fallback when English unavailable
|
||||
|
||||
## 📊 Current Status
|
||||
|
||||
- **System Health**: ✅ No issues detected
|
||||
- **Active Providers**: 7 total providers enabled
|
||||
- **Language Support**: English (primary) with proper fallback
|
||||
- **API Access**: Fully functional with key `057875988c90c9b05722df7ff5fedc69`
|
||||
- **VIP Account**: OpenSubtitles.com VIP active
|
||||
|
||||
## 🔍 Access Information
|
||||
|
||||
- **Web Interface**: `http://atlantis:6767` or `http://100.83.230.112:6767`
|
||||
- **API Endpoint**: `http://atlantis:6767/api`
|
||||
- **API Key**: `057875988c90c9b05722df7ff5fedc69`
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured (`no-new-privileges:true`)
|
||||
- ✅ Running as non-root user (PUID/PGID)
|
||||
- ✅ API key authentication enabled
|
||||
- ✅ Network isolation via custom network
|
||||
|
||||
## 📈 Resource Requirements
|
||||
|
||||
### Current Configuration
|
||||
- **Memory**: No limits set (recommended: 512MB-1GB)
|
||||
- **CPU**: No limits set (1 core sufficient)
|
||||
- **Storage**: Configuration ~100MB, cache varies by usage
|
||||
|
||||
### Monitoring
|
||||
```bash
|
||||
# Monitor resource usage
|
||||
docker stats bazarr
|
||||
|
||||
# Check disk usage
|
||||
du -sh /volume1/docker2/bazarr
|
||||
```
|
||||
|
||||
## 🏥 Health Monitoring
|
||||
|
||||
### API Health Check
|
||||
```bash
|
||||
# Check system health
|
||||
curl -s -H "X-API-KEY: REDACTED_API_KEY" \
|
||||
"http://localhost:6767/api/system/health"
|
||||
|
||||
# Check provider status
|
||||
curl -s -H "X-API-KEY: REDACTED_API_KEY" \
|
||||
"http://localhost:6767/api/providers"
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Status}}' bazarr
|
||||
|
||||
# View recent logs
|
||||
docker logs --tail 50 bazarr
|
||||
|
||||
# Check provider connectivity
|
||||
docker exec bazarr curl -f http://localhost:6767/api/system/status
|
||||
```
|
||||
|
||||
## 🛠️ Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Subtitles Not Downloading**
|
||||
1. Check provider status in web interface
|
||||
2. Verify API keys for premium providers
|
||||
3. Check language profile configuration
|
||||
4. Review minimum score settings
|
||||
|
||||
**Provider Connection Issues**
|
||||
```bash
|
||||
# Check provider status
|
||||
curl -H "X-API-KEY: REDACTED_API_KEY" \
|
||||
"http://localhost:6767/api/providers"
|
||||
|
||||
# Test provider connectivity
|
||||
docker exec bazarr ping opensubtitles.com
|
||||
```
|
||||
|
||||
**Performance Issues**
|
||||
- Monitor provider response times
|
||||
- Check subtitle cache size
|
||||
- Review concurrent download limits
|
||||
- Verify network connectivity
|
||||
|
||||
**Language Profile Problems**
|
||||
- Verify language codes are correct
|
||||
- Check cutoff scores aren't too high
|
||||
- Review provider language support
|
||||
- Test with manual subtitle search
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps bazarr
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f bazarr
|
||||
|
||||
# Restart service
|
||||
docker-compose restart bazarr
|
||||
|
||||
# Update service
|
||||
docker-compose pull bazarr
|
||||
docker-compose up -d bazarr
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec bazarr /bin/bash
|
||||
|
||||
# Check configuration
|
||||
docker exec bazarr cat /config/config/config.yaml
|
||||
```
|
||||
|
||||
## 🔗 Integration with Arr Suite
|
||||
|
||||
### Sonarr Integration
|
||||
- **API Key**: Configured for automatic episode subtitle downloads
|
||||
- **Language Profile**: Synced with Sonarr quality profiles
|
||||
- **Monitoring**: Real-time episode monitoring enabled
|
||||
|
||||
### Radarr Integration
|
||||
- **API Key**: Configured for automatic movie subtitle downloads
|
||||
- **Quality Matching**: Aligned with Radarr quality profiles
|
||||
- **Search Triggers**: Automatic search on movie import
|
||||
|
||||
### Recommended Workflow
|
||||
1. **Media Import**: Sonarr/Radarr imports new content
|
||||
2. **Automatic Trigger**: Bazarr detects new media
|
||||
3. **Provider Search**: All 7 providers searched simultaneously
|
||||
4. **Quality Scoring**: Best subtitle selected based on profile
|
||||
5. **Download & Sync**: Subtitle downloaded and synced to media
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: [Bazarr Wiki](https://wiki.bazarr.media/)
|
||||
- **Docker Hub**: [linuxserver/bazarr](https://hub.docker.com/r/linuxserver/bazarr)
|
||||
- **Community Forums**: [Bazarr Discord](https://discord.gg/MH2e2eb)
|
||||
- **GitHub Issues**: [Bazarr GitHub](https://github.com/morpheus65535/bazarr)
|
||||
- **Provider Documentation**: [Subtitle Provider Guide](https://wiki.bazarr.media/Additional-Configuration/Providers/)
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services that integrate with Bazarr:
|
||||
- **Sonarr** - TV show management and monitoring
|
||||
- **Radarr** - Movie management and monitoring
|
||||
- **Plex** - Media server and streaming
|
||||
- **Jellyfin** - Alternative media server
|
||||
- **Prowlarr** - Indexer management (indirect integration)
|
||||
|
||||
## 📝 Change Log
|
||||
|
||||
### February 2025 - Major Provider Enhancement
|
||||
- ✅ Added 3 new subtitle providers (75% increase)
|
||||
- ✅ Optimized language profiles for anime and international content
|
||||
- ✅ Enhanced VIP account utilization
|
||||
- ✅ Improved quality scoring system
|
||||
- ✅ Added comprehensive documentation
|
||||
|
||||
### Previous Updates
|
||||
- Initial deployment on Atlantis
|
||||
- Basic provider configuration
|
||||
- Sonarr/Radarr integration setup
|
||||
|
||||
---
|
||||
|
||||
*This documentation reflects the enhanced Bazarr configuration with expanded subtitle provider support and optimized language profiles for diverse content types.*
|
||||
|
||||
**Last Updated**: February 9, 2025
|
||||
**Configuration Source**: `Atlantis/arr-suite/docker-compose.yml`
|
||||
**Enhancement Author**: OpenHands Agent
|
||||
125
docs/services/individual/bazarr.md
Normal file
125
docs/services/individual/bazarr.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# Bazarr
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | bazarr |
|
||||
| **Host** | Atlantis (Synology) |
|
||||
| **Category** | Media / Subtitles |
|
||||
| **Docker Image** | `lscr.io/linuxserver/bazarr:latest` |
|
||||
| **Compose File** | `hosts/synology/atlantis/arr-suite/docker-compose.yml` |
|
||||
| **URL** | http://192.168.0.200:6767 |
|
||||
| **Version** | 1.5.6 |
|
||||
|
||||
## Purpose
|
||||
|
||||
Bazarr is the subtitle companion to Sonarr and Radarr. It monitors your library for missing or
|
||||
wanted subtitles, searches configured providers, and downloads them automatically. It syncs
|
||||
directly with Sonarr/Radarr via SignalR so new items trigger subtitle searches immediately.
|
||||
|
||||
## API Access
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **URL** | http://192.168.0.200:6767 |
|
||||
| **API Key** | `REDACTED_BAZARR_API_KEY` |
|
||||
| **Header** | `X-Api-Key: "REDACTED_API_KEY"` |
|
||||
|
||||
```bash
|
||||
BAZARR="http://192.168.0.200:6767"
|
||||
BAZARR_KEY="REDACTED_BAZARR_API_KEY"
|
||||
|
||||
# System status and version
|
||||
curl -s "$BAZARR/api/system/status" -H "X-Api-Key: $BAZARR_KEY" | python3 -m json.tool
|
||||
|
||||
# Health check
|
||||
curl -s "$BAZARR/api/system/health" -H "X-Api-Key: $BAZARR_KEY" | python3 -m json.tool
|
||||
|
||||
# Missing subtitles count
|
||||
curl -s "$BAZARR/api/badges" -H "X-Api-Key: $BAZARR_KEY" | python3 -m json.tool
|
||||
|
||||
# List missing episode subtitles
|
||||
curl -s "$BAZARR/api/episodes/wanted" -H "X-Api-Key: $BAZARR_KEY" | python3 -m json.tool
|
||||
|
||||
# List missing movie subtitles
|
||||
curl -s "$BAZARR/api/movies/wanted" -H "X-Api-Key: $BAZARR_KEY" | python3 -m json.tool
|
||||
```
|
||||
|
||||
## Current Status (2026-03-02)
|
||||
|
||||
- Sonarr SignalR: **LIVE**
|
||||
- Radarr SignalR: **LIVE**
|
||||
- Missing episode subtitles: 846
|
||||
- Missing movie subtitles: 6
|
||||
- Provider issues: 0
|
||||
|
||||
## Configuration
|
||||
|
||||
### Docker Compose (in docker-compose.yml)
|
||||
|
||||
```yaml
|
||||
bazarr:
|
||||
image: lscr.io/linuxserver/bazarr:latest
|
||||
container_name: bazarr
|
||||
environment:
|
||||
- PUID=1029
|
||||
- PGID=100
|
||||
- TZ=America/Los_Angeles
|
||||
- UMASK=022
|
||||
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:bazarr
|
||||
- TP_SCHEME=http
|
||||
- TP_DOMAIN=192.168.0.200:8580
|
||||
- TP_THEME=dracula
|
||||
volumes:
|
||||
- /volume2/metadata/docker2/bazarr:/config
|
||||
- /volume1/data:/data
|
||||
ports:
|
||||
- "6767:6767"
|
||||
networks:
|
||||
media2_net:
|
||||
ipv4_address: 172.24.0.x
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: always
|
||||
```
|
||||
|
||||
Config on Atlantis: `/volume2/metadata/docker2/bazarr/config/config.yaml`
|
||||
|
||||
Note: The API key is stored in `config.yaml` on Atlantis (not in this repo). Retrieve it with:
|
||||
```bash
|
||||
grep "apikey" /volume2/metadata/docker2/bazarr/config/config.yaml
|
||||
```
|
||||
|
||||
## Connected Services
|
||||
|
||||
| Service | Connection | Status |
|
||||
|---------|-----------|--------|
|
||||
| Sonarr | SignalR + API | LIVE |
|
||||
| Radarr | SignalR + API | LIVE |
|
||||
|
||||
Bazarr connects *to* Sonarr/Radarr (not the reverse). Configure under
|
||||
Settings → Sonarr and Settings → Radarr in the Bazarr UI.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**SignalR shows CONNECTING or DISCONNECTED**
|
||||
- Verify Sonarr/Radarr are running: `docker ps | grep -E 'sonarr|radarr'`
|
||||
- Check the host/API key in Bazarr Settings → Sonarr/Radarr
|
||||
- Restart Bazarr: `docker restart bazarr`
|
||||
|
||||
**No subtitle providers**
|
||||
- Check badges: `providers` field should be 0 for no errors
|
||||
- Go to Settings → Providers in the Bazarr UI to configure providers (OpenSubtitles, etc.)
|
||||
|
||||
**Subtitle not found for a specific episode**
|
||||
- Go to the episode in Bazarr → Manual Search to browse provider results
|
||||
- Check the episode language profile matches what providers offer
|
||||
|
||||
## Related Services
|
||||
|
||||
- Sonarr — http://192.168.0.200:8989
|
||||
- Radarr — http://192.168.0.200:7878
|
||||
- See also: `docs/services/individual/download-priority.md` for the NZB-first strategy
|
||||
140
docs/services/individual/beeper.md
Normal file
140
docs/services/individual/beeper.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# Beeper
|
||||
|
||||
**🟢 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | beeper |
|
||||
| **Host** | Homelab VM |
|
||||
| **Category** | Communication |
|
||||
| **Docker Image** | `ghcr.io/zachatrocity/docker-beeper:latest` |
|
||||
| **Compose File** | `homelab_vm/beeper.yaml` |
|
||||
| **Portainer Stack** | `beeper` (ID=536, homelab-vm endpoint, standalone) |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Beeper is a universal chat client that bridges many messaging platforms (iMessage, WhatsApp, Telegram, Signal, Discord, etc.) into a single interface. This deployment uses a KasmVNC-based Docker image that runs the Beeper desktop app in a containerized browser session accessible via web browser.
|
||||
|
||||
> **Note**: Beeper is no longer a standalone product — it merged with Automattic/Texts.com. This image (`docker-beeper`) provides the legacy Beeper Linux desktop client via KasmVNC.
|
||||
|
||||
## 🚀 Access
|
||||
|
||||
| Interface | URL | Notes |
|
||||
|-----------|-----|-------|
|
||||
| Web UI (HTTPS) | `https://<homelab-vm-ip>:3656` | Use this — accept self-signed cert |
|
||||
| Web UI (HTTP) | `http://<homelab-vm-ip>:3655` | Redirects to HTTPS, will show error |
|
||||
|
||||
> **Important**: KasmVNC requires HTTPS. Always access via port **3656** with HTTPS. Accept the self-signed certificate warning in your browser.
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose (`homelab_vm/beeper.yaml`)
|
||||
|
||||
```yaml
|
||||
services:
|
||||
beeper:
|
||||
image: ghcr.io/zachatrocity/docker-beeper:latest
|
||||
container_name: Beeper
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "nc -z 127.0.0.1 3000 || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
environment:
|
||||
PUID: 1029
|
||||
PGID: 100
|
||||
TZ: America/Los_Angeles
|
||||
volumes:
|
||||
- /home/homelab/docker/beeper:/config:rw
|
||||
ports:
|
||||
- 3655:3000 # HTTP (redirects to HTTPS — use port 3656)
|
||||
- 3656:3001 # HTTPS (use this — accept self-signed cert in browser)
|
||||
shm_size: "2gb"
|
||||
restart: on-failure:5
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1029` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone |
|
||||
|
||||
### Port Mappings
|
||||
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|---------|
|
||||
| 3655 | 3000 | TCP | HTTP (redirects to HTTPS — non-functional) |
|
||||
| 3656 | 3001 | TCP | HTTPS KasmVNC (use this) |
|
||||
|
||||
### Volume Mappings
|
||||
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|---------|
|
||||
| `/home/homelab/docker/beeper` | `/config` | bind | App config, sessions, data |
|
||||
|
||||
### Notable Settings
|
||||
|
||||
- **`shm_size: "2gb"`** — Required for Chromium/Electron running inside KasmVNC; prevents crashes
|
||||
- **`seccomp:unconfined`** — Required for Electron sandbox inside container
|
||||
- **`restart: on-failure:5`** — Restart on crash up to 5 times (avoids restart loops)
|
||||
|
||||
## 🔧 Portainer Deployment
|
||||
|
||||
This service is managed as a **standalone Portainer stack** (ID=536) on the homelab-vm endpoint. The compose file is stored in the repo at `homelab_vm/beeper.yaml` for reference, but Portainer manages it with inline content rather than GitOps sync.
|
||||
|
||||
> **Why not GitOps?** The homelab-vm Portainer Edge Agent deploys all YAML files in `hosts/vms/homelab-vm/` together as a combined compose project. The local monitoring stack (prometheus/grafana, started from `/home/homelab/docker/monitoring/`) conflicts with `monitoring.yaml` in that directory, blocking new GitOps stack creation. The monitoring-stack Portainer entry was removed to avoid the conflict — those containers continue running independently.
|
||||
|
||||
To update beeper:
|
||||
1. Edit the stack via Portainer UI → Stacks → beeper → Editor
|
||||
2. Or use the Portainer API to update stack 536 with new compose content
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
**"This application requires a secure connection (HTTPS)"**
|
||||
- You accessed port 3655 (HTTP). Switch to `https://<ip>:3656`.
|
||||
- Accept the self-signed certificate warning.
|
||||
|
||||
**Container keeps restarting**
|
||||
- Check logs: `docker logs Beeper`
|
||||
- The `shm_size: "2gb"` is critical — without it, Chromium OOM-crashes constantly.
|
||||
- Ensure `/home/homelab/docker/beeper` exists and is writable by PUID 1029.
|
||||
|
||||
**Black screen or blank browser**
|
||||
- Give the container 90 seconds to start (see `start_period` in healthcheck).
|
||||
- Hard-refresh the browser page.
|
||||
|
||||
**Session lost after restart**
|
||||
- Sessions are persisted to `/home/homelab/docker/beeper` — check that volume is mounted.
|
||||
|
||||
### Useful Commands
|
||||
|
||||
```bash
|
||||
# View logs
|
||||
docker logs -f Beeper
|
||||
|
||||
# Restart container
|
||||
docker restart Beeper
|
||||
|
||||
# Check health
|
||||
docker inspect --format='{{.State.Health.Status}}' Beeper
|
||||
|
||||
# Verify data directory
|
||||
ls -la /home/homelab/docker/beeper/
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Image Source**: [zachatrocity/docker-beeper](https://github.com/zachatrocity/docker-beeper)
|
||||
- **Beeper**: [beeper.com](https://www.beeper.com) (now merged with Texts.com/Automattic)
|
||||
|
||||
---
|
||||
|
||||
*Last Updated*: 2026-02-20
|
||||
*Configuration Source*: `homelab_vm/beeper.yaml`
|
||||
163
docs/services/individual/bg-helper.md
Normal file
163
docs/services/individual/bg-helper.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# Bg Helper
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | bg-helper |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `1337kavin/bg-helper-server:latest` |
|
||||
| **Compose File** | `concord_nuc/piped.yaml` |
|
||||
| **Directory** | `concord_nuc` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
bg-helper is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f bg-helper
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: piped-bg-helper
|
||||
image: 1337kavin/bg-helper-server:latest
|
||||
restart: unless-stopped
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f bg-helper
|
||||
|
||||
# Restart service
|
||||
docker-compose restart bg-helper
|
||||
|
||||
# Update service
|
||||
docker-compose pull bg-helper
|
||||
docker-compose up -d bg-helper
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec bg-helper /bin/bash
|
||||
# or
|
||||
docker-compose exec bg-helper /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for bg-helper
|
||||
- **Docker Hub**: [1337kavin/bg-helper-server:latest](https://hub.docker.com/r/1337kavin/bg-helper-server:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/piped.yaml`
|
||||
177
docs/services/individual/binternet.md
Normal file
177
docs/services/individual/binternet.md
Normal file
@@ -0,0 +1,177 @@
|
||||
# Binternet
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | binternet |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/ahwxorg/binternet:latest` |
|
||||
| **Compose File** | `homelab_vm/binternet.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
binternet is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f binternet
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- ALL
|
||||
container_name: binternet
|
||||
image: ghcr.io/ahwxorg/binternet:latest
|
||||
ports:
|
||||
- 21544:8080
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 21544 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:21544`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f binternet
|
||||
|
||||
# Restart service
|
||||
docker-compose restart binternet
|
||||
|
||||
# Update service
|
||||
docker-compose pull binternet
|
||||
docker-compose up -d binternet
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec binternet /bin/bash
|
||||
# or
|
||||
docker-compose exec binternet /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for binternet
|
||||
- **Docker Hub**: [ghcr.io/ahwxorg/binternet:latest](https://hub.docker.com/r/ghcr.io/ahwxorg/binternet:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/binternet.yaml`
|
||||
179
docs/services/individual/blackbox-exporter.md
Normal file
179
docs/services/individual/blackbox-exporter.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Blackbox Exporter
|
||||
|
||||
**🟢 Monitoring Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | blackbox-exporter |
|
||||
| **Host** | setillo |
|
||||
| **Category** | Monitoring |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `prom/blackbox-exporter` |
|
||||
| **Compose File** | `setillo/prometheus/compose.yaml` |
|
||||
| **Directory** | `setillo/prometheus` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
blackbox-exporter is a monitoring and observability tool that helps track system performance and health.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (setillo)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd setillo/prometheus
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f blackbox-exporter
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: blackbox-exporter
|
||||
image: prom/blackbox-exporter
|
||||
networks:
|
||||
- prometheus-net
|
||||
ports:
|
||||
- 9115:9115
|
||||
restart: unless-stopped
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9115 | 9115 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 9115:9115
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Metrics not collecting**
|
||||
- Check target endpoints are accessible
|
||||
- Verify configuration syntax
|
||||
- Check network connectivity
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f blackbox-exporter
|
||||
|
||||
# Restart service
|
||||
docker-compose restart blackbox-exporter
|
||||
|
||||
# Update service
|
||||
docker-compose pull blackbox-exporter
|
||||
docker-compose up -d blackbox-exporter
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec blackbox-exporter /bin/bash
|
||||
# or
|
||||
docker-compose exec blackbox-exporter /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for blackbox-exporter
|
||||
- **Docker Hub**: [prom/blackbox-exporter](https://hub.docker.com/r/prom/blackbox-exporter)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD blackbox-exporter:
|
||||
- Grafana
|
||||
- Prometheus
|
||||
- Uptime Kuma
|
||||
- Node Exporter
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `setillo/prometheus/compose.yaml`
|
||||
170
docs/services/individual/cache.md
Normal file
170
docs/services/individual/cache.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# Cache
|
||||
|
||||
**🟢 Storage Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | cache |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Storage |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `memcached:1.6` |
|
||||
| **Compose File** | `Calypso/seafile-server.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
cache is a storage solution that manages data persistence, backup, or file sharing.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f cache
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Seafile-CACHE
|
||||
entrypoint: memcached -m 256
|
||||
hostname: memcached
|
||||
image: memcached:1.6
|
||||
read_only: true
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f cache
|
||||
|
||||
# Restart service
|
||||
docker-compose restart cache
|
||||
|
||||
# Update service
|
||||
docker-compose pull cache
|
||||
docker-compose up -d cache
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec cache /bin/bash
|
||||
# or
|
||||
docker-compose exec cache /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for cache
|
||||
- **Docker Hub**: [Official cache](https://hub.docker.com/_/memcached:1.6)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the storage category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/seafile-server.yaml`
|
||||
195
docs/services/individual/cadvisor.md
Normal file
195
docs/services/individual/cadvisor.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# Cadvisor
|
||||
|
||||
**🟡 Monitoring Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | cadvisor |
|
||||
| **Host** | setillo |
|
||||
| **Category** | Monitoring |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `gcr.io/cadvisor/cadvisor:latest` |
|
||||
| **Compose File** | `setillo/prometheus/compose.yaml` |
|
||||
| **Directory** | `setillo/prometheus` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
cadvisor is a monitoring and observability tool that helps track system performance and health.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (setillo)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd setillo/prometheus
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f cadvisor
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command:
|
||||
- --docker_only=true
|
||||
container_name: Prometheus-cAdvisor
|
||||
cpu_shares: 512
|
||||
hostname: prometheus-cadvisor
|
||||
image: gcr.io/cadvisor/cadvisor:latest
|
||||
mem_limit: 256m
|
||||
mem_reservation: 64m
|
||||
networks:
|
||||
- prometheus-net
|
||||
read_only: true
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges=true
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/` | `/rootfs` | bind | Data storage |
|
||||
| `/var/run` | `/var/run` | bind | Data storage |
|
||||
| `/sys` | `/sys` | bind | Data storage |
|
||||
| `/var/run/docker.sock` | `/var/run/docker.sock` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
- ✅ Read-only root filesystem
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Metrics not collecting**
|
||||
- Check target endpoints are accessible
|
||||
- Verify configuration syntax
|
||||
- Check network connectivity
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f cadvisor
|
||||
|
||||
# Restart service
|
||||
docker-compose restart cadvisor
|
||||
|
||||
# Update service
|
||||
docker-compose pull cadvisor
|
||||
docker-compose up -d cadvisor
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec cadvisor /bin/bash
|
||||
# or
|
||||
docker-compose exec cadvisor /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for cadvisor
|
||||
- **Docker Hub**: [gcr.io/cadvisor/cadvisor:latest](https://hub.docker.com/r/gcr.io/cadvisor/cadvisor:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD cadvisor:
|
||||
- Grafana
|
||||
- Prometheus
|
||||
- Uptime Kuma
|
||||
- Node Exporter
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `setillo/prometheus/compose.yaml`
|
||||
198
docs/services/individual/calibre-web.md
Normal file
198
docs/services/individual/calibre-web.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# Calibre Web
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | calibre-web |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/linuxserver/calibre-web` |
|
||||
| **Compose File** | `Atlantis/calibre-books.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
calibre-web is a media management and streaming service that helps organize and serve your digital media content.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f calibre-web
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: calibre-webui
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=America/Los_Angeles
|
||||
- DOCKER_MODS=linuxserver/mods:universal-calibre
|
||||
- OAUTHLIB_RELAX_TOKEN_SCOPE=1
|
||||
image: ghcr.io/linuxserver/calibre-web
|
||||
ports:
|
||||
- 8083:8083
|
||||
restart: always
|
||||
volumes:
|
||||
- /volume1/docker/calibreweb:/config
|
||||
- /volume1/docker/books:/books
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1026` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `DOCKER_MODS` | `linuxserver/mods:universal-calibre` | Configuration variable |
|
||||
| `OAUTHLIB_RELAX_TOKEN_SCOPE` | `***MASKED***` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8083 | 8083 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/calibreweb` | `/config` | bind | Configuration files |
|
||||
| `/volume1/docker/books` | `/books` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8083:8083
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f calibre-web
|
||||
|
||||
# Restart service
|
||||
docker-compose restart calibre-web
|
||||
|
||||
# Update service
|
||||
docker-compose pull calibre-web
|
||||
docker-compose up -d calibre-web
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec calibre-web /bin/bash
|
||||
# or
|
||||
docker-compose exec calibre-web /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for calibre-web
|
||||
- **Docker Hub**: [ghcr.io/linuxserver/calibre-web](https://hub.docker.com/r/ghcr.io/linuxserver/calibre-web)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD calibre-web:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/calibre-books.yml`
|
||||
175
docs/services/individual/chrome.md
Normal file
175
docs/services/individual/chrome.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# Chrome
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | chrome |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `gcr.io/zenika-hub/alpine-chrome:123` |
|
||||
| **Compose File** | `homelab_vm/hoarder.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
chrome is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f chrome
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command:
|
||||
- chromium-browser
|
||||
- --no-sandbox
|
||||
- --disable-gpu
|
||||
- --disable-dev-shm-usage
|
||||
- --remote-debugging-address=0.0.0.0
|
||||
- --remote-debugging-port=9222
|
||||
- --hide-scrollbars
|
||||
image: gcr.io/zenika-hub/alpine-chrome:123
|
||||
ports:
|
||||
- 9222:9222
|
||||
restart: unless-stopped
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9222 | 9222 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 9222:9222
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f chrome
|
||||
|
||||
# Restart service
|
||||
docker-compose restart chrome
|
||||
|
||||
# Update service
|
||||
docker-compose pull chrome
|
||||
docker-compose up -d chrome
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec chrome /bin/bash
|
||||
# or
|
||||
docker-compose exec chrome /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for chrome
|
||||
- **Docker Hub**: [gcr.io/zenika-hub/alpine-chrome:123](https://hub.docker.com/r/gcr.io/zenika-hub/alpine-chrome:123)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/hoarder.yaml`
|
||||
185
docs/services/individual/cloudlfare-dns-updater.md
Normal file
185
docs/services/individual/cloudlfare-dns-updater.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# Cloudlfare Dns Updater
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | cloudlfare-dns-updater |
|
||||
| **Host** | things_to_try |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `spaskifilip/cloudflare-dns-updater:latest` |
|
||||
| **Compose File** | `things_to_try/cloudflare-dns-updater.yaml` |
|
||||
| **Directory** | `things_to_try` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
cloudlfare-dns-updater is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (things_to_try)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd things_to_try
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f cloudlfare-dns-updater
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: cloudlfare-dns-updater
|
||||
environment:
|
||||
CF_API_TOKEN: YOUR_API_TOKEN
|
||||
CF_ZONE_ID: YOUR_ZONE_ID1,YOUR_ZONE_ID2
|
||||
DNS_RECORD_COMMENT_KEY: Comm1,Comm2
|
||||
PROXIED: true
|
||||
SCHEDULE_MINUTES: 5
|
||||
TTL: 1
|
||||
TYPE: A
|
||||
image: spaskifilip/cloudflare-dns-updater:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- app-data:/app
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CF_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `CF_ZONE_ID` | `YOUR_ZONE_ID1,YOUR_ZONE_ID2` | Configuration variable |
|
||||
| `DNS_RECORD_COMMENT_KEY` | `***MASKED***` | Configuration variable |
|
||||
| `SCHEDULE_MINUTES` | `5` | Configuration variable |
|
||||
| `PROXIED` | `True` | Configuration variable |
|
||||
| `TYPE` | `A` | Configuration variable |
|
||||
| `TTL` | `1` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `app-data` | `/app` | volume | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f cloudlfare-dns-updater
|
||||
|
||||
# Restart service
|
||||
docker-compose restart cloudlfare-dns-updater
|
||||
|
||||
# Update service
|
||||
docker-compose pull cloudlfare-dns-updater
|
||||
docker-compose up -d cloudlfare-dns-updater
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec cloudlfare-dns-updater /bin/bash
|
||||
# or
|
||||
docker-compose exec cloudlfare-dns-updater /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for cloudlfare-dns-updater
|
||||
- **Docker Hub**: [spaskifilip/cloudflare-dns-updater:latest](https://hub.docker.com/r/spaskifilip/cloudflare-dns-updater:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on things_to_try
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `things_to_try/cloudflare-dns-updater.yaml`
|
||||
188
docs/services/individual/cocalc.md
Normal file
188
docs/services/individual/cocalc.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Cocalc
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | cocalc |
|
||||
| **Host** | guava |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `sagemathinc/cocalc-docker:latest` |
|
||||
| **Compose File** | `guava/portainer_yaml/cocalc.yaml` |
|
||||
| **Directory** | `guava/portainer_yaml` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
cocalc is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (guava)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd guava/portainer_yaml
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f cocalc
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: cocalc
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
- COCALC_NATS_AUTH=false
|
||||
image: sagemathinc/cocalc-docker:latest
|
||||
ports:
|
||||
- 8080:443
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /mnt/data/cocalc/projects:/projects
|
||||
- /mnt/data/cocalc/home:/home/cocalc
|
||||
- /mnt/data/cocalc/library:/projects/library
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `COCALC_NATS_AUTH` | `false` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8080 | 443 | TCP | HTTPS web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/mnt/data/cocalc/projects` | `/projects` | bind | Data storage |
|
||||
| `/mnt/data/cocalc/home` | `/home/cocalc` | bind | Data storage |
|
||||
| `/mnt/data/cocalc/library` | `/projects/library` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://guava:8080`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f cocalc
|
||||
|
||||
# Restart service
|
||||
docker-compose restart cocalc
|
||||
|
||||
# Update service
|
||||
docker-compose pull cocalc
|
||||
docker-compose up -d cocalc
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec cocalc /bin/bash
|
||||
# or
|
||||
docker-compose exec cocalc /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for cocalc
|
||||
- **Docker Hub**: [sagemathinc/cocalc-docker:latest](https://hub.docker.com/r/sagemathinc/cocalc-docker:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on guava
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `guava/portainer_yaml/cocalc.yaml`
|
||||
187
docs/services/individual/companion.md
Normal file
187
docs/services/individual/companion.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Companion
|
||||
|
||||
**🟢 Development Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | companion |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Development |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `quay.io/invidious/invidious-companion:latest` |
|
||||
| **Compose File** | `concord_nuc/invidious/invidious.yaml` |
|
||||
| **Directory** | `concord_nuc/invidious` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
companion is a development tool that assists with code management, CI/CD, or software development workflows.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc/invidious
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f companion
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- ALL
|
||||
environment:
|
||||
- SERVER_SECRET_KEY=REDACTED_SECRET_KEY
|
||||
image: quay.io/invidious/invidious-companion:latest
|
||||
logging:
|
||||
options:
|
||||
max-file: '4'
|
||||
max-size: 1G
|
||||
read_only: true
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- companioncache:/var/tmp/youtubei.js:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `SERVER_SECRET_KEY` | `***MASKED***` | Application secret key |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `companioncache` | `/var/tmp/youtubei.js` | volume | Temporary files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f companion
|
||||
|
||||
# Restart service
|
||||
docker-compose restart companion
|
||||
|
||||
# Update service
|
||||
docker-compose pull companion
|
||||
docker-compose up -d companion
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec companion /bin/bash
|
||||
# or
|
||||
docker-compose exec companion /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for companion
|
||||
- **Docker Hub**: [quay.io/invidious/invidious-companion:latest](https://hub.docker.com/r/quay.io/invidious/invidious-companion:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD companion:
|
||||
- GitLab
|
||||
- Gitea
|
||||
- Jenkins
|
||||
- Portainer
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/invidious/invidious.yaml`
|
||||
203
docs/services/individual/coturn.md
Normal file
203
docs/services/individual/coturn.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Coturn
|
||||
|
||||
**🟡 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | coturn |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `instrumentisto/coturn:latest` |
|
||||
| **Compose File** | `Atlantis/matrix_synapse_docs/turnserver_docker_compose.yml` |
|
||||
| **Directory** | `Atlantis/matrix_synapse_docs` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
coturn is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/matrix_synapse_docs
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f coturn
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command:
|
||||
- turnserver
|
||||
- -c
|
||||
- /config/turnserver.conf
|
||||
container_name: coturn
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: instrumentisto/coturn:latest
|
||||
networks:
|
||||
turn_net:
|
||||
ipv4_address: 172.25.0.2
|
||||
ports:
|
||||
- 3478:3478/tcp
|
||||
- 3478:3478/udp
|
||||
- 5349:5349/tcp
|
||||
- 5349:5349/udp
|
||||
- 49160-49200:49160-49200/udp
|
||||
restart: unless-stopped
|
||||
ulimits:
|
||||
nofile:
|
||||
hard: 65536
|
||||
soft: 65536
|
||||
volumes:
|
||||
- /volume1/docker/turnserver/turnserver.conf:/config/turnserver.conf:ro
|
||||
- /volume1/docker/turnserver/certs:/config/certs:ro
|
||||
- /volume1/docker/turnserver/logs:/var/log
|
||||
- /volume1/docker/turnserver/db:/var/lib/coturn
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3478 | 3478 | TCP | Service port |
|
||||
| 3478 | 3478 | UDP | Service port |
|
||||
| 5349 | 5349 | TCP | Service port |
|
||||
| 5349 | 5349 | UDP | Service port |
|
||||
| 49160-49200 | 49160-49200 | UDP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/turnserver/turnserver.conf` | `/config/turnserver.conf` | bind | Configuration files |
|
||||
| `/volume1/docker/turnserver/certs` | `/config/certs` | bind | Configuration files |
|
||||
| `/volume1/docker/turnserver/logs` | `/var/log` | bind | System logs |
|
||||
| `/volume1/docker/turnserver/db` | `/var/lib/coturn` | bind | Service data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 3478:3478/tcp, 3478:3478/udp, 5349:5349/tcp, 5349:5349/udp, 49160-49200:49160-49200/udp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f coturn
|
||||
|
||||
# Restart service
|
||||
docker-compose restart coturn
|
||||
|
||||
# Update service
|
||||
docker-compose pull coturn
|
||||
docker-compose up -d coturn
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec coturn /bin/bash
|
||||
# or
|
||||
docker-compose exec coturn /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for coturn
|
||||
- **Docker Hub**: [instrumentisto/coturn:latest](https://hub.docker.com/r/instrumentisto/coturn:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/matrix_synapse_docs/turnserver_docker_compose.yml`
|
||||
178
docs/services/individual/cron.md
Normal file
178
docs/services/individual/cron.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# Cron
|
||||
|
||||
**🟡 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | cron |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `alpine:latest` |
|
||||
| **Compose File** | `Calypso/firefly/firefly.yaml` |
|
||||
| **Directory** | `Calypso/firefly` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
cron is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/firefly
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f cron
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command: sh -c "echo \"0 3 * * * wget -qO- http://firefly:8080/api/v1/cron/9610001d2871a8622ea5bf5e65fe25db\"
|
||||
| crontab - && crond -f -L /dev/stdout"
|
||||
container_name: Firefly-Cron
|
||||
cpu_shares: 256
|
||||
depends_on:
|
||||
firefly:
|
||||
condition: service_started
|
||||
environment:
|
||||
TZ: America/Los_Angeles
|
||||
hostname: firefly-cron
|
||||
image: alpine:latest
|
||||
mem_limit: 64m
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f cron
|
||||
|
||||
# Restart service
|
||||
docker-compose restart cron
|
||||
|
||||
# Update service
|
||||
docker-compose pull cron
|
||||
docker-compose up -d cron
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec cron /bin/bash
|
||||
# or
|
||||
docker-compose exec cron /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for cron
|
||||
- **Docker Hub**: [Official cron](https://hub.docker.com/_/alpine:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/firefly/firefly.yaml`
|
||||
176
docs/services/individual/dashdot.md
Normal file
176
docs/services/individual/dashdot.md
Normal file
@@ -0,0 +1,176 @@
|
||||
# Dashdot
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | dashdot |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `mauricenino/dashdot` |
|
||||
| **Compose File** | `homelab_vm/dashdot.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
dashdot is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f dashdot
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: dashdot
|
||||
image: mauricenino/dashdot
|
||||
ports:
|
||||
- 7512:3001
|
||||
privileged: true
|
||||
restart: unless-stopped
|
||||
stdin_open: true
|
||||
tty: true
|
||||
volumes:
|
||||
- /:/mnt/host:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 7512 | 3001 | TCP | Monitoring interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/` | `/mnt/host` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 7512:3001
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f dashdot
|
||||
|
||||
# Restart service
|
||||
docker-compose restart dashdot
|
||||
|
||||
# Update service
|
||||
docker-compose pull dashdot
|
||||
docker-compose up -d dashdot
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec dashdot /bin/bash
|
||||
# or
|
||||
docker-compose exec dashdot /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for dashdot
|
||||
- **Docker Hub**: [mauricenino/dashdot](https://hub.docker.com/r/mauricenino/dashdot)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/dashdot.yaml`
|
||||
190
docs/services/individual/database.md
Normal file
190
docs/services/individual/database.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Database
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | database |
|
||||
| **Host** | raspberry-pi-5-vish |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0` |
|
||||
| **Compose File** | `raspberry-pi-5-vish/immich/docker-compose.yml` |
|
||||
| **Directory** | `raspberry-pi-5-vish/immich` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
database is a media management and streaming service that helps organize and serve your digital media content.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (raspberry-pi-5-vish)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd raspberry-pi-5-vish/immich
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f database
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: immich_postgres
|
||||
environment:
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: --data-checksums
|
||||
POSTGRES_PASSWORD: "REDACTED_PASSWORD"
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
||||
restart: unless-stopped
|
||||
shm_size: 128mb
|
||||
volumes:
|
||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
| `POSTGRES_USER` | `${DB_USERNAME}` | Configuration variable |
|
||||
| `POSTGRES_DB` | `${DB_DATABASE_NAME}` | Configuration variable |
|
||||
| `POSTGRES_INITDB_ARGS` | `--data-checksums` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `${DB_DATA_LOCATION}` | `/var/lib/postgresql/data` | volume | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f database
|
||||
|
||||
# Restart service
|
||||
docker-compose restart database
|
||||
|
||||
# Update service
|
||||
docker-compose pull database
|
||||
docker-compose up -d database
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec database /bin/bash
|
||||
# or
|
||||
docker-compose exec database /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for database
|
||||
- **Docker Hub**: [ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0](https://hub.docker.com/r/ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD database:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `raspberry-pi-5-vish/immich/docker-compose.yml`
|
||||
183
docs/services/individual/db.md
Normal file
183
docs/services/individual/db.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# Db
|
||||
|
||||
**🟢 Storage Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | db |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Storage |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `mariadb:11.4-noble` |
|
||||
| **Compose File** | `homelab_vm/romm/romm.yaml` |
|
||||
| **Directory** | `homelab_vm/romm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
db is a storage solution that manages data persistence, backup, or file sharing.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm/romm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: RomM-DB
|
||||
environment:
|
||||
MYSQL_DATABASE: romm
|
||||
MYSQL_PASSWORD: "REDACTED_PASSWORD"
|
||||
MYSQL_ROOT_PASSWORD: "REDACTED_PASSWORD"
|
||||
MYSQL_USER: rommuser
|
||||
TZ: America/Los_Angeles
|
||||
image: mariadb:11.4-noble
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:false
|
||||
volumes:
|
||||
- /mnt/atlantis_docker/romm/db:/var/lib/mysql:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `MYSQL_DATABASE` | `romm` | Configuration variable |
|
||||
| `MYSQL_USER` | `rommuser` | Configuration variable |
|
||||
| `MYSQL_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `MYSQL_ROOT_PASSWORD` | `***MASKED***` | MySQL root password |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/mnt/atlantis_docker/romm/db` | `/var/lib/mysql` | bind | Service data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart db
|
||||
|
||||
# Update service
|
||||
docker-compose pull db
|
||||
docker-compose up -d db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec db /bin/bash
|
||||
# or
|
||||
docker-compose exec db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for db
|
||||
- **Docker Hub**: [Official db](https://hub.docker.com/_/mariadb:11.4-noble)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the storage category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/romm/romm.yaml`
|
||||
181
docs/services/individual/ddns-crista-love.md
Normal file
181
docs/services/individual/ddns-crista-love.md
Normal file
@@ -0,0 +1,181 @@
|
||||
# Ddns Crista Love
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-crista-love |
|
||||
| **Host** | guava |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `guava/portainer_yaml/dynamic_dns.yaml` |
|
||||
| **Directory** | `guava/portainer_yaml` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-crista-love is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (guava)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd guava/portainer_yaml
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-crista-love
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
container_name: ddns-crista-love
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=crista.love,cle.crista.love,cocalc.crista.love,mm.crista.love
|
||||
- PROXIED=true
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 3000:3000
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `crista.love,cle.crista.love,cocalc.crista.love,mm.crista.love` | Service domain name |
|
||||
| `PROXIED` | `true` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-crista-love
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-crista-love
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-crista-love
|
||||
docker-compose up -d ddns-crista-love
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-crista-love /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-crista-love /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-crista-love
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on guava
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `guava/portainer_yaml/dynamic_dns.yaml`
|
||||
180
docs/services/individual/ddns-thevish-proxied.md
Normal file
180
docs/services/individual/ddns-thevish-proxied.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# Ddns Thevish Proxied
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-thevish-proxied |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `Calypso/dynamic_dns.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-thevish-proxied is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-thevish-proxied
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=www.thevish.io
|
||||
- PROXIED=true
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `www.thevish.io` | Service domain name |
|
||||
| `PROXIED` | `true` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-thevish-proxied
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-thevish-proxied
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-thevish-proxied
|
||||
docker-compose up -d ddns-thevish-proxied
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-thevish-proxied /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-thevish-proxied /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-thevish-proxied
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/dynamic_dns.yaml`
|
||||
180
docs/services/individual/ddns-thevish-unproxied.md
Normal file
180
docs/services/individual/ddns-thevish-unproxied.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# Ddns Thevish Unproxied
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-thevish-unproxied |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `Calypso/dynamic_dns.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-thevish-unproxied is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-thevish-unproxied
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=binterest.thevish.io,hoarder.thevish.io,joplin.thevish.io,matrix.thevish.io,*.vps.thevish.io
|
||||
- PROXIED=false
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `binterest.thevish.io,hoarder.thevish.io,joplin.thevish.io,matrix.thevish.io,*.vps.thevish.io` | Service domain name |
|
||||
| `PROXIED` | `false` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-thevish-unproxied
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-thevish-unproxied
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-thevish-unproxied
|
||||
docker-compose up -d ddns-thevish-unproxied
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-thevish-unproxied /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-thevish-unproxied /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-thevish-unproxied
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/dynamic_dns.yaml`
|
||||
215
docs/services/individual/ddns-updater.md
Normal file
215
docs/services/individual/ddns-updater.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Ddns Updater
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-updater |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `qmcgaw/ddns-updater` |
|
||||
| **Compose File** | `homelab_vm/ddns.yml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-updater is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-updater
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: ddns-updater
|
||||
environment:
|
||||
- CONFIG=
|
||||
- PERIOD=5m
|
||||
- UPDATE_COOLDOWN_PERIOD=5m
|
||||
- PUBLICIP_FETCHERS=all
|
||||
- PUBLICIP_HTTP_PROVIDERS=all
|
||||
- PUBLICIPV4_HTTP_PROVIDERS=all
|
||||
- PUBLICIPV6_HTTP_PROVIDERS=all
|
||||
- PUBLICIP_DNS_PROVIDERS=all
|
||||
- PUBLICIP_DNS_TIMEOUT=3s
|
||||
- HTTP_TIMEOUT=10s
|
||||
- LISTENING_PORT=8000
|
||||
- ROOT_URL=/
|
||||
- BACKUP_PERIOD=0
|
||||
- BACKUP_DIRECTORY=/updater/data
|
||||
- LOG_LEVEL=info
|
||||
- LOG_CALLER=hidden
|
||||
- SHOUTRRR_ADDRESSES=
|
||||
image: qmcgaw/ddns-updater
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- 8000:8000/tcp
|
||||
restart: always
|
||||
volumes:
|
||||
- /home/homelab/docker/ddns/data:/updater/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CONFIG` | `` | Configuration variable |
|
||||
| `PERIOD` | `5m` | Configuration variable |
|
||||
| `UPDATE_COOLDOWN_PERIOD` | `5m` | Configuration variable |
|
||||
| `PUBLICIP_FETCHERS` | `all` | Configuration variable |
|
||||
| `PUBLICIP_HTTP_PROVIDERS` | `all` | Configuration variable |
|
||||
| `PUBLICIPV4_HTTP_PROVIDERS` | `all` | Configuration variable |
|
||||
| `PUBLICIPV6_HTTP_PROVIDERS` | `all` | Configuration variable |
|
||||
| `PUBLICIP_DNS_PROVIDERS` | `all` | Configuration variable |
|
||||
| `PUBLICIP_DNS_TIMEOUT` | `3s` | Configuration variable |
|
||||
| `HTTP_TIMEOUT` | `10s` | Configuration variable |
|
||||
| `LISTENING_PORT` | `8000` | Configuration variable |
|
||||
| `ROOT_URL` | `/` | Configuration variable |
|
||||
| `BACKUP_PERIOD` | `0` | Configuration variable |
|
||||
| `BACKUP_DIRECTORY` | `/updater/data` | Configuration variable |
|
||||
| `LOG_LEVEL` | `info` | Logging verbosity level |
|
||||
| `LOG_CALLER` | `hidden` | Configuration variable |
|
||||
| `SHOUTRRR_ADDRESSES` | `` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8000 | 8000 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/homelab/docker/ddns/data` | `/updater/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:8000`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-updater
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-updater
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-updater
|
||||
docker-compose up -d ddns-updater
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-updater /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-updater /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-updater
|
||||
- **Docker Hub**: [qmcgaw/ddns-updater](https://hub.docker.com/r/qmcgaw/ddns-updater)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/ddns.yml`
|
||||
180
docs/services/individual/ddns-vish-13340.md
Normal file
180
docs/services/individual/ddns-vish-13340.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# Ddns Vish 13340
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-vish-13340 |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `concord_nuc/dyndns_updater.yaml` |
|
||||
| **Directory** | `concord_nuc` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-vish-13340 is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-vish-13340
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=api.vish.gg,api.vp.vish.gg,in.vish.gg,client.spotify.vish.gg,spotify.vish.gg
|
||||
- PROXIED=false
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1000:1000
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `api.vish.gg,api.vp.vish.gg,in.vish.gg,client.spotify.vish.gg,spotify.vish.gg` | Service domain name |
|
||||
| `PROXIED` | `false` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-vish-13340
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-vish-13340
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-vish-13340
|
||||
docker-compose up -d ddns-vish-13340
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-vish-13340 /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-vish-13340 /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-vish-13340
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/dyndns_updater.yaml`
|
||||
180
docs/services/individual/ddns-vish-proxied.md
Normal file
180
docs/services/individual/ddns-vish-proxied.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# Ddns Vish Proxied
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-vish-proxied |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `Calypso/dynamic_dns.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-vish-proxied is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-vish-proxied
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=www.vish.gg
|
||||
- PROXIED=true
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `www.vish.gg` | Service domain name |
|
||||
| `PROXIED` | `true` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-vish-proxied
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-vish-proxied
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-vish-proxied
|
||||
docker-compose up -d ddns-vish-proxied
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-vish-proxied /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-vish-proxied /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-vish-proxied
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/dynamic_dns.yaml`
|
||||
180
docs/services/individual/ddns-vish-unproxied.md
Normal file
180
docs/services/individual/ddns-vish-unproxied.md
Normal file
@@ -0,0 +1,180 @@
|
||||
# Ddns Vish Unproxied
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | ddns-vish-unproxied |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `favonia/cloudflare-ddns:latest` |
|
||||
| **Compose File** | `Calypso/dynamic_dns.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
ddns-vish-unproxied is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f ddns-vish-unproxied
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- all
|
||||
environment:
|
||||
- CLOUDFLARE_API_TOKEN=REDACTED_TOKEN
|
||||
- DOMAINS=cal.vish.gg,git.vish.gg,pw.vish.gg,reddit.vish.gg,*.vish.gg,vish.gg,vp.vish.gg
|
||||
- PROXIED=false
|
||||
image: favonia/cloudflare-ddns:latest
|
||||
network_mode: host
|
||||
read_only: true
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CLOUDFLARE_API_TOKEN` | `***MASKED***` | Configuration variable |
|
||||
| `DOMAINS` | `cal.vish.gg,git.vish.gg,pw.vish.gg,reddit.vish.gg,*.vish.gg,vish.gg,vp.vish.gg` | Service domain name |
|
||||
| `PROXIED` | `false` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f ddns-vish-unproxied
|
||||
|
||||
# Restart service
|
||||
docker-compose restart ddns-vish-unproxied
|
||||
|
||||
# Update service
|
||||
docker-compose pull ddns-vish-unproxied
|
||||
docker-compose up -d ddns-vish-unproxied
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec ddns-vish-unproxied /bin/bash
|
||||
# or
|
||||
docker-compose exec ddns-vish-unproxied /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for ddns-vish-unproxied
|
||||
- **Docker Hub**: [favonia/cloudflare-ddns:latest](https://hub.docker.com/r/favonia/cloudflare-ddns:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/dynamic_dns.yaml`
|
||||
172
docs/services/individual/deiucanta.md
Normal file
172
docs/services/individual/deiucanta.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# Deiucanta
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | deiucanta |
|
||||
| **Host** | anubis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/deiucanta/chatpad:latest` |
|
||||
| **Compose File** | `anubis/chatgpt.yml` |
|
||||
| **Directory** | `anubis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
deiucanta is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (anubis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd anubis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f deiucanta
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Chatpad-AI
|
||||
image: ghcr.io/deiucanta/chatpad:latest
|
||||
ports:
|
||||
- 5690:80
|
||||
restart: always
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 5690 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://anubis:5690`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f deiucanta
|
||||
|
||||
# Restart service
|
||||
docker-compose restart deiucanta
|
||||
|
||||
# Update service
|
||||
docker-compose pull deiucanta
|
||||
docker-compose up -d deiucanta
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec deiucanta /bin/bash
|
||||
# or
|
||||
docker-compose exec deiucanta /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for deiucanta
|
||||
- **Docker Hub**: [ghcr.io/deiucanta/chatpad:latest](https://hub.docker.com/r/ghcr.io/deiucanta/chatpad:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on anubis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `anubis/chatgpt.yml`
|
||||
190
docs/services/individual/dockpeek.md
Normal file
190
docs/services/individual/dockpeek.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Dockpeek
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | dockpeek |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/dockpeek/dockpeek:latest` |
|
||||
| **Compose File** | `Atlantis/dockpeek.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
dockpeek is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f dockpeek
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Dockpeek
|
||||
environment:
|
||||
DOCKER_HOST: unix:///var/run/docker.sock
|
||||
PASSWORD: "REDACTED_PASSWORD"
|
||||
SECRET_KEY: REDACTED_SECRET_KEY
|
||||
USERNAME: vish
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/8000' || exit 1
|
||||
timeout: 5s
|
||||
image: ghcr.io/dockpeek/dockpeek:latest
|
||||
ports:
|
||||
- 3812:8000
|
||||
restart: on-failure:5
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `SECRET_KEY` | `***MASKED***` | Application secret key |
|
||||
| `USERNAME` | `vish` | Configuration variable |
|
||||
| `PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `DOCKER_HOST` | `unix:///var/run/docker.sock` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3812 | 8000 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/var/run/docker.sock` | `/var/run/docker.sock` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:3812`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `timeout 10s bash -c ':> /dev/tcp/127.0.0.1/8000' || exit 1`
|
||||
**Check Interval**: 10s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 3
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f dockpeek
|
||||
|
||||
# Restart service
|
||||
docker-compose restart dockpeek
|
||||
|
||||
# Update service
|
||||
docker-compose pull dockpeek
|
||||
docker-compose up -d dockpeek
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec dockpeek /bin/bash
|
||||
# or
|
||||
docker-compose exec dockpeek /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for dockpeek
|
||||
- **Docker Hub**: [ghcr.io/dockpeek/dockpeek:latest](https://hub.docker.com/r/ghcr.io/dockpeek/dockpeek:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/dockpeek.yml`
|
||||
222
docs/services/individual/documenso.md
Normal file
222
docs/services/individual/documenso.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# Documenso
|
||||
|
||||
**🟡 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | documenso |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `documenso/documenso:latest` |
|
||||
| **Compose File** | `Atlantis/documenso/documenso.yaml` |
|
||||
| **Directory** | `Atlantis/documenso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
documenso is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/documenso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f documenso
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Documenso
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- PORT=3000
|
||||
- NEXTAUTH_SECRET=REDACTED_NEXTAUTH_SECRET
|
||||
- NEXT_PRIVATE_ENCRYPTION_KEY=REDACTED_ENCRYPTION_KEY
|
||||
- NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=REDACTED_ENCRYPTION_KEY
|
||||
- NEXTAUTH_URL=https://documenso.thevish.io
|
||||
- NEXT_PUBLIC_WEBAPP_URL=https://documenso.thevish.io
|
||||
- NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://documenso:3000
|
||||
- NEXT_PUBLIC_MARKETING_URL=https://documenso.thevish.io
|
||||
- NEXT_PRIVATE_DATABASE_URL=postgres://documensouser:documensopass@documenso-db:5432/documenso
|
||||
- NEXT_PRIVATE_DIRECT_DATABASE_URL=postgres://documensouser:documensopass@documenso-db:5432/documenso
|
||||
- NEXT_PUBLIC_UPLOAD_TRANSPORT=database
|
||||
- NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth
|
||||
- NEXT_PRIVATE_SMTP_HOST=smtp.gmail.com
|
||||
- NEXT_PRIVATE_SMTP_PORT=587
|
||||
- NEXT_PRIVATE_SMTP_USERNAME=your-email@example.com
|
||||
- NEXT_PRIVATE_SMTP_PASSWORD="REDACTED_PASSWORD"
|
||||
- NEXT_PRIVATE_SMTP_SECURE=false
|
||||
- NEXT_PRIVATE_SMTP_FROM_NAME=Vish
|
||||
- NEXT_PRIVATE_SMTP_FROM_ADDRESS=your-email@example.com
|
||||
- NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=/opt/documenso/cert.p12
|
||||
image: documenso/documenso:latest
|
||||
ports:
|
||||
- 3513:3000
|
||||
volumes:
|
||||
- /volume1/docker/documenso/data:/opt/documenso:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PORT` | `3000` | Configuration variable |
|
||||
| `NEXTAUTH_SECRET` | `***MASKED***` | Configuration variable |
|
||||
| `NEXT_PRIVATE_ENCRYPTION_KEY` | `***MASKED***` | Configuration variable |
|
||||
| `NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY` | `***MASKED***` | Configuration variable |
|
||||
| `NEXTAUTH_URL` | `https://documenso.thevish.io` | Configuration variable |
|
||||
| `NEXT_PUBLIC_WEBAPP_URL` | `https://documenso.thevish.io` | Configuration variable |
|
||||
| `NEXT_PRIVATE_INTERNAL_WEBAPP_URL` | `http://documenso:3000` | Configuration variable |
|
||||
| `NEXT_PUBLIC_MARKETING_URL` | `https://documenso.thevish.io` | Configuration variable |
|
||||
| `NEXT_PRIVATE_DATABASE_URL` | `postgres://documensouser:documensopass@documenso-db:5432/documenso` | Database connection string |
|
||||
| `NEXT_PRIVATE_DIRECT_DATABASE_URL` | `postgres://documensouser:documensopass@documenso-db:5432/documenso` | Database connection string |
|
||||
| `NEXT_PUBLIC_UPLOAD_TRANSPORT` | `database` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_TRANSPORT` | `smtp-auth` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_HOST` | `smtp.gmail.com` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_PORT` | `587` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_USERNAME` | `your-email@example.com` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_SECURE` | `false` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_FROM_NAME` | `Vish` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SMTP_FROM_ADDRESS` | `your-email@example.com` | Configuration variable |
|
||||
| `NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH` | `/opt/documenso/cert.p12` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3513 | 3000 | TCP | Web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/documenso/data` | `/opt/documenso` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:3513`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f documenso
|
||||
|
||||
# Restart service
|
||||
docker-compose restart documenso
|
||||
|
||||
# Update service
|
||||
docker-compose pull documenso
|
||||
docker-compose up -d documenso
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec documenso /bin/bash
|
||||
# or
|
||||
docker-compose exec documenso /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for documenso
|
||||
- **Docker Hub**: [documenso/documenso:latest](https://hub.docker.com/r/documenso/documenso:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/documenso/documenso.yaml`
|
||||
193
docs/services/individual/dokuwiki.md
Normal file
193
docs/services/individual/dokuwiki.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Dokuwiki
|
||||
|
||||
**🟡 Productivity Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | dokuwiki |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Productivity |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `ghcr.io/linuxserver/dokuwiki` |
|
||||
| **Compose File** | `Atlantis/dokuwiki.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
dokuwiki is a productivity application that helps manage tasks, documents, or workflows.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f dokuwiki
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: dokuwiki
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
image: ghcr.io/linuxserver/dokuwiki
|
||||
ports:
|
||||
- 8399:80
|
||||
- 4443:443
|
||||
restart: always
|
||||
volumes:
|
||||
- /volume1/docker/dokuwiki:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `PUID` | `1026` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8399 | 80 | TCP | HTTP web interface |
|
||||
| 4443 | 443 | TCP | HTTPS web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/dokuwiki` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:8399`
|
||||
- **HTTP**: `http://Atlantis:4443`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f dokuwiki
|
||||
|
||||
# Restart service
|
||||
docker-compose restart dokuwiki
|
||||
|
||||
# Update service
|
||||
docker-compose pull dokuwiki
|
||||
docker-compose up -d dokuwiki
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec dokuwiki /bin/bash
|
||||
# or
|
||||
docker-compose exec dokuwiki /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for dokuwiki
|
||||
- **Docker Hub**: [ghcr.io/linuxserver/dokuwiki](https://hub.docker.com/r/ghcr.io/linuxserver/dokuwiki)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD dokuwiki:
|
||||
- Nextcloud
|
||||
- Paperless-NGX
|
||||
- BookStack
|
||||
- Syncthing
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/dokuwiki.yml`
|
||||
130
docs/services/individual/download-priority.md
Normal file
130
docs/services/individual/download-priority.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# Download Priority: NZB-First / Torrent Fallback
|
||||
|
||||
## Overview
|
||||
|
||||
Sonarr and Radarr are configured to exhaust all Usenet (NZB) sources before falling back to
|
||||
torrents. A torrent is only used if:
|
||||
|
||||
1. No working NZB is found, **and**
|
||||
2. 120 minutes have elapsed since the item was first wanted
|
||||
|
||||
This prevents noisy torrent grabs when a perfectly good NZB exists but takes a moment to be
|
||||
indexed.
|
||||
|
||||
## How It Works
|
||||
|
||||
### Delay Profile (both Sonarr and Radarr)
|
||||
|
||||
| Setting | Value | Reason |
|
||||
|---------|-------|--------|
|
||||
| `preferredProtocol` | `usenet` | SABnzbd is tried first |
|
||||
| `usenetDelay` | 0 min | Grab NZBs immediately |
|
||||
| `torrentDelay` | **120 min** | Wait 2 hours before allowing torrent grabs |
|
||||
| `bypassIfHighestQuality` | **false** | Never skip the torrent delay, even for top-quality releases |
|
||||
|
||||
`bypassIfHighestQuality: false` is critical. Without it, any torrent matching the highest quality
|
||||
tier would bypass the 120-minute wait entirely.
|
||||
|
||||
### Download Clients
|
||||
|
||||
| Client | Protocol | Priority | Service |
|
||||
|--------|----------|----------|---------|
|
||||
| SABnzbd | Usenet | **1** (highest) | Sonarr + Radarr |
|
||||
| Deluge | Torrent | **50** (lower) | Sonarr + Radarr |
|
||||
|
||||
Lower priority number = higher precedence. SABnzbd at priority 1 always wins when both protocols
|
||||
are eligible.
|
||||
|
||||
### End-to-End Flow
|
||||
|
||||
```
|
||||
Item goes Wanted
|
||||
│
|
||||
▼
|
||||
Sonarr/Radarr searches indexers immediately
|
||||
│
|
||||
├─ NZB found? ──► SABnzbd downloads it ──► Done
|
||||
│
|
||||
└─ No NZB found
|
||||
│
|
||||
▼
|
||||
Wait 120 min (torrent delay)
|
||||
│
|
||||
▼
|
||||
Search again → Torrent found? ──► Deluge downloads it ──► Done
|
||||
```
|
||||
|
||||
Failed download handling is enabled on both services: if SABnzbd reports a failed download
|
||||
(missing blocks, password-protected, etc.), the *arr app marks it failed and re-searches,
|
||||
eventually falling through to Deluge after the delay.
|
||||
|
||||
## Configuration Details
|
||||
|
||||
### Deluge
|
||||
|
||||
Deluge runs inside the gluetun VPN container (network_mode: `service:gluetun`), so all torrent
|
||||
traffic is routed through the VPN.
|
||||
|
||||
- **Host:** `gluetun` (Docker service name, shared network with gluetun)
|
||||
- **Port:** `8112`
|
||||
- **Config on Atlantis:** `/volume2/metadata/docker2/deluge/`
|
||||
- **Default password:** `deluge` (linuxserver/deluge image default)
|
||||
|
||||
### SABnzbd
|
||||
|
||||
- **Host:** `192.168.0.200`
|
||||
- **Port:** `8080`
|
||||
- **Categories:** `tv` (Sonarr), `movies` (Radarr)
|
||||
|
||||
## Adjusting the Torrent Delay
|
||||
|
||||
To change the 120-minute torrent delay via API:
|
||||
|
||||
**Sonarr:**
|
||||
```bash
|
||||
curl -X PUT "http://192.168.0.200:8989/api/v3/delayprofile/1" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"id":1,"enableUsenet":true,"enableTorrent":true,"preferredProtocol":"usenet",
|
||||
"usenetDelay":0,"torrentDelay":120,"bypassIfHighestQuality":false,
|
||||
"bypassIfAboveCustomFormatScore":false,"minimumCustomFormatScore":0,
|
||||
"order":2147483647,"tags":[]}'
|
||||
```
|
||||
|
||||
**Radarr:**
|
||||
```bash
|
||||
curl -X PUT "http://192.168.0.200:7878/api/v3/delayprofile/1" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"id":1,"enableUsenet":true,"enableTorrent":true,"preferredProtocol":"usenet",
|
||||
"usenetDelay":0,"torrentDelay":120,"bypassIfHighestQuality":false,
|
||||
"bypassIfAboveCustomFormatScore":false,"minimumCustomFormatScore":0,
|
||||
"order":2147483647,"tags":[]}'
|
||||
```
|
||||
|
||||
Replace `120` with any value in minutes (e.g. `0` to disable the wait, `60` for 1 hour).
|
||||
|
||||
## Verifying the Configuration
|
||||
|
||||
```bash
|
||||
# Check delay profiles
|
||||
curl -s "http://192.168.0.200:8989/api/v3/delayprofile" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" | python3 -m json.tool
|
||||
curl -s "http://192.168.0.200:7878/api/v3/delayprofile" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" | python3 -m json.tool
|
||||
|
||||
# Check download clients
|
||||
curl -s "http://192.168.0.200:8989/api/v3/downloadclient" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" | python3 -m json.tool
|
||||
curl -s "http://192.168.0.200:7878/api/v3/downloadclient" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" | python3 -m json.tool
|
||||
```
|
||||
|
||||
Expected results:
|
||||
- Both delay profiles: `torrentDelay=120`, `bypassIfHighestQuality=false`
|
||||
- Sonarr clients: SABnzbd `enable=true priority=1`, Deluge `enable=true priority=50`
|
||||
- Radarr clients: SABnzbd `enable=true priority=1`, Deluge `enable=true priority=50`
|
||||
|
||||
## Scope
|
||||
|
||||
This configuration applies to **Sonarr and Radarr only**. Lidarr and Whisparr are out of scope.
|
||||
188
docs/services/individual/dozzle.md
Normal file
188
docs/services/individual/dozzle.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Dozzle
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | dozzle |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `amir20/dozzle:latest` |
|
||||
| **Compose File** | `Atlantis/dozzle/dozzle.yaml` |
|
||||
| **Directory** | `Atlantis/dozzle` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
dozzle is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/dozzle
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f dozzle
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Dozzle
|
||||
cpu_shares: 768
|
||||
environment:
|
||||
DOZZLE_AUTH_PROVIDER: simple
|
||||
image: amir20/dozzle:latest
|
||||
mem_limit: 3g
|
||||
ports:
|
||||
- 8892:8080
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /volume1/docker/dozzle:/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `DOZZLE_AUTH_PROVIDER` | `simple` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8892 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/var/run/docker.sock` | `/var/run/docker.sock` | bind | Data storage |
|
||||
| `/volume1/docker/dozzle` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:8892`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f dozzle
|
||||
|
||||
# Restart service
|
||||
docker-compose restart dozzle
|
||||
|
||||
# Update service
|
||||
docker-compose pull dozzle
|
||||
docker-compose up -d dozzle
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec dozzle /bin/bash
|
||||
# or
|
||||
docker-compose exec dozzle /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for dozzle
|
||||
- **Docker Hub**: [amir20/dozzle:latest](https://hub.docker.com/r/amir20/dozzle:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/dozzle/dozzle.yaml`
|
||||
171
docs/services/individual/drawio.md
Normal file
171
docs/services/individual/drawio.md
Normal file
@@ -0,0 +1,171 @@
|
||||
# Drawio
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | drawio |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `jgraph/drawio` |
|
||||
| **Compose File** | `homelab_vm/drawio.yml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
drawio is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f drawio
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Draw.io
|
||||
cpu_shares: 768
|
||||
healthcheck:
|
||||
test: curl -f http://localhost:8080/ || exit 1
|
||||
image: jgraph/drawio
|
||||
mem_limit: 4g
|
||||
ports:
|
||||
- 5022:8080
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 5022 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:5022`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `curl -f http://localhost:8080/ || exit 1`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f drawio
|
||||
|
||||
# Restart service
|
||||
docker-compose restart drawio
|
||||
|
||||
# Update service
|
||||
docker-compose pull drawio
|
||||
docker-compose up -d drawio
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec drawio /bin/bash
|
||||
# or
|
||||
docker-compose exec drawio /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for drawio
|
||||
- **Docker Hub**: [jgraph/drawio](https://hub.docker.com/r/jgraph/drawio)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/drawio.yml`
|
||||
175
docs/services/individual/droppy.md
Normal file
175
docs/services/individual/droppy.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# Droppy
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | droppy |
|
||||
| **Host** | Bulgaria_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `silverwind/droppy` |
|
||||
| **Compose File** | `Bulgaria_vm/droppy.yml` |
|
||||
| **Directory** | `Bulgaria_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
droppy is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Bulgaria_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Bulgaria_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f droppy
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: droppy
|
||||
image: silverwind/droppy
|
||||
ports:
|
||||
- 8989:8989
|
||||
restart: always
|
||||
volumes:
|
||||
- /root/docker/droppy/config/:/config
|
||||
- /root/docker/droppy/files/:/files
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8989 | 8989 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/root/docker/droppy/config/` | `/config` | bind | Configuration files |
|
||||
| `/root/docker/droppy/files/` | `/files` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8989:8989
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f droppy
|
||||
|
||||
# Restart service
|
||||
docker-compose restart droppy
|
||||
|
||||
# Update service
|
||||
docker-compose pull droppy
|
||||
docker-compose up -d droppy
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec droppy /bin/bash
|
||||
# or
|
||||
docker-compose exec droppy /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for droppy
|
||||
- **Docker Hub**: [silverwind/droppy](https://hub.docker.com/r/silverwind/droppy)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Bulgaria_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Bulgaria_vm/droppy.yml`
|
||||
177
docs/services/individual/element-web.md
Normal file
177
docs/services/individual/element-web.md
Normal file
@@ -0,0 +1,177 @@
|
||||
# Element Web
|
||||
|
||||
**🟢 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | element-web |
|
||||
| **Host** | anubis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `vectorim/element-web:latest` |
|
||||
| **Compose File** | `anubis/element.yml` |
|
||||
| **Directory** | `anubis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
element-web is a communication platform that enables messaging, collaboration, or social interaction.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (anubis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd anubis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f element-web
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: element-web
|
||||
image: vectorim/element-web:latest
|
||||
ports:
|
||||
- 9000:80
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/vish/docker/elementweb/config.json:/app/config.json
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9000 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/vish/docker/elementweb/config.json` | `/app/config.json` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://anubis:9000`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f element-web
|
||||
|
||||
# Restart service
|
||||
docker-compose restart element-web
|
||||
|
||||
# Update service
|
||||
docker-compose pull element-web
|
||||
docker-compose up -d element-web
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec element-web /bin/bash
|
||||
# or
|
||||
docker-compose exec element-web /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for element-web
|
||||
- **Docker Hub**: [vectorim/element-web:latest](https://hub.docker.com/r/vectorim/element-web:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on anubis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `anubis/element.yml`
|
||||
179
docs/services/individual/fasten.md
Normal file
179
docs/services/individual/fasten.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Fasten
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | fasten |
|
||||
| **Host** | guava |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/fastenhealth/fasten-onprem:main` |
|
||||
| **Compose File** | `guava/portainer_yaml/fasten_health.yaml` |
|
||||
| **Directory** | `guava/portainer_yaml` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
fasten is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (guava)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd guava/portainer_yaml
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f fasten
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: fasten-onprem
|
||||
image: ghcr.io/fastenhealth/fasten-onprem:main
|
||||
ports:
|
||||
- 9090:8080
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /mnt/data/fasten/db:/opt/fasten/db
|
||||
- /mnt/data/fasten/cache:/opt/fasten/cache
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9090 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/mnt/data/fasten/db` | `/opt/fasten/db` | bind | Database files |
|
||||
| `/mnt/data/fasten/cache` | `/opt/fasten/cache` | bind | Cache data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://guava:9090`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f fasten
|
||||
|
||||
# Restart service
|
||||
docker-compose restart fasten
|
||||
|
||||
# Update service
|
||||
docker-compose pull fasten
|
||||
docker-compose up -d fasten
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec fasten /bin/bash
|
||||
# or
|
||||
docker-compose exec fasten /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for fasten
|
||||
- **Docker Hub**: [ghcr.io/fastenhealth/fasten-onprem:main](https://hub.docker.com/r/ghcr.io/fastenhealth/fasten-onprem:main)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on guava
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `guava/portainer_yaml/fasten_health.yaml`
|
||||
186
docs/services/individual/fenrus.md
Normal file
186
docs/services/individual/fenrus.md
Normal file
@@ -0,0 +1,186 @@
|
||||
# Fenrus
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | fenrus |
|
||||
| **Host** | guava |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `revenz/fenrus:latest` |
|
||||
| **Compose File** | `guava/portainer_yaml/fenrus_dashboard.yaml` |
|
||||
| **Directory** | `guava/portainer_yaml` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
fenrus is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (guava)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd guava/portainer_yaml
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f fenrus
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: fenrus
|
||||
environment:
|
||||
TZ: America/Los_Angeles
|
||||
healthcheck:
|
||||
interval: 30s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- curl -f http://127.0.0.1:3000/ || exit 1
|
||||
timeout: 5s
|
||||
image: revenz/fenrus:latest
|
||||
ports:
|
||||
- 45678:3000
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /mnt/data/fenrus:/app/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 45678 | 3000 | TCP | Web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/mnt/data/fenrus` | `/app/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://guava:45678`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD-SHELL curl -f http://127.0.0.1:3000/ || exit 1`
|
||||
**Check Interval**: 30s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 3
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f fenrus
|
||||
|
||||
# Restart service
|
||||
docker-compose restart fenrus
|
||||
|
||||
# Update service
|
||||
docker-compose pull fenrus
|
||||
docker-compose up -d fenrus
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec fenrus /bin/bash
|
||||
# or
|
||||
docker-compose exec fenrus /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for fenrus
|
||||
- **Docker Hub**: [revenz/fenrus:latest](https://hub.docker.com/r/revenz/fenrus:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on guava
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `guava/portainer_yaml/fenrus_dashboard.yaml`
|
||||
189
docs/services/individual/firefly-db-backup.md
Normal file
189
docs/services/individual/firefly-db-backup.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Firefly Db Backup
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | firefly-db-backup |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `postgres` |
|
||||
| **Compose File** | `Atlantis/firefly.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
firefly-db-backup is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f firefly-db-backup
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: firefly-db-backup
|
||||
entrypoint: "bash -c 'bash -s < /dump/dump_\\`date +%d-%m-%Y\"_\"%H_%M_%S\\`.psql\
|
||||
\ \n (ls -t /dump/dump*.psql|head -n $$BACKUP_NUM_KEEP;ls /dump/dump*.psql)|sort|uniq\
|
||||
\ -u|xargs rm -- {} \n sleep $$BACKUP_FREQUENCY \ndone \nEOF'\n"
|
||||
environment:
|
||||
BACKUP_FREQUENCY: 7d
|
||||
BACKUP_NUM_KEEP: 10
|
||||
PGDATABASE: firefly
|
||||
PGHOST: firefly-db
|
||||
PGPASSWORD: "REDACTED_PASSWORD"
|
||||
PGUSER: firefly
|
||||
image: postgres
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
- /volume1/docker/fireflydb:/dump
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PGHOST` | `firefly-db` | Configuration variable |
|
||||
| `PGDATABASE` | `firefly` | Configuration variable |
|
||||
| `PGUSER` | `firefly` | Configuration variable |
|
||||
| `PGPASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `BACKUP_NUM_KEEP` | `10` | Configuration variable |
|
||||
| `BACKUP_FREQUENCY` | `7d` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/fireflydb` | `/dump` | bind | Data storage |
|
||||
| `/etc/localtime` | `/etc/localtime` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f firefly-db-backup
|
||||
|
||||
# Restart service
|
||||
docker-compose restart firefly-db-backup
|
||||
|
||||
# Update service
|
||||
docker-compose pull firefly-db-backup
|
||||
docker-compose up -d firefly-db-backup
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec firefly-db-backup /bin/bash
|
||||
# or
|
||||
docker-compose exec firefly-db-backup /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for firefly-db-backup
|
||||
- **Docker Hub**: [Official firefly-db-backup](https://hub.docker.com/_/postgres)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/firefly.yml`
|
||||
179
docs/services/individual/firefly-db.md
Normal file
179
docs/services/individual/firefly-db.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Firefly Db
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | firefly-db |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `postgres` |
|
||||
| **Compose File** | `Atlantis/firefly.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
firefly-db is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f firefly-db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: firefly-db
|
||||
environment:
|
||||
POSTGRES_DB: firefly
|
||||
POSTGRES_PASSWORD: "REDACTED_PASSWORD"
|
||||
POSTGRES_USER: firefly
|
||||
image: postgres
|
||||
networks:
|
||||
- internal
|
||||
restart: always
|
||||
volumes:
|
||||
- /volume1/docker/fireflydb:/var/lib/postgresql/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `POSTGRES_DB` | `firefly` | Configuration variable |
|
||||
| `POSTGRES_USER` | `firefly` | Configuration variable |
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/fireflydb` | `/var/lib/postgresql/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f firefly-db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart firefly-db
|
||||
|
||||
# Update service
|
||||
docker-compose pull firefly-db
|
||||
docker-compose up -d firefly-db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec firefly-db /bin/bash
|
||||
# or
|
||||
docker-compose exec firefly-db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for firefly-db
|
||||
- **Docker Hub**: [Official firefly-db](https://hub.docker.com/_/postgres)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/firefly.yml`
|
||||
164
docs/services/individual/firefly-redis.md
Normal file
164
docs/services/individual/firefly-redis.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# Firefly Redis
|
||||
|
||||
**🟢 Storage Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | firefly-redis |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Storage |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `redis` |
|
||||
| **Compose File** | `Atlantis/firefly.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
firefly-redis is a storage solution that manages data persistence, backup, or file sharing.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f firefly-redis
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: firefly-redis
|
||||
image: redis
|
||||
networks:
|
||||
- internal
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f firefly-redis
|
||||
|
||||
# Restart service
|
||||
docker-compose restart firefly-redis
|
||||
|
||||
# Update service
|
||||
docker-compose pull firefly-redis
|
||||
docker-compose up -d firefly-redis
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec firefly-redis /bin/bash
|
||||
# or
|
||||
docker-compose exec firefly-redis /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for firefly-redis
|
||||
- **Docker Hub**: [Official firefly-redis](https://hub.docker.com/_/redis)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the storage category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/firefly.yml`
|
||||
188
docs/services/individual/firefly.md
Normal file
188
docs/services/individual/firefly.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Firefly
|
||||
|
||||
**🟡 Productivity Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | firefly |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Productivity |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `fireflyiii/core:latest` |
|
||||
| **Compose File** | `Calypso/firefly/firefly.yaml` |
|
||||
| **Directory** | `Calypso/firefly` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
firefly is a productivity application that helps manage tasks, documents, or workflows.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/firefly
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f firefly
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Firefly
|
||||
cpu_shares: 768
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_started
|
||||
redis:
|
||||
condition: service_healthy
|
||||
env_file:
|
||||
- stack.env
|
||||
healthcheck:
|
||||
test: curl -f http://localhost:8080/ || exit 1
|
||||
hostname: firefly
|
||||
image: fireflyiii/core:latest
|
||||
mem_limit: 1g
|
||||
ports:
|
||||
- 6182:8080
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker/firefly/upload:/var/www/html/storage/upload:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 6182 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/firefly/upload` | `/var/www/html/storage/upload` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Calypso:6182`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `curl -f http://localhost:8080/ || exit 1`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f firefly
|
||||
|
||||
# Restart service
|
||||
docker-compose restart firefly
|
||||
|
||||
# Update service
|
||||
docker-compose pull firefly
|
||||
docker-compose up -d firefly
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec firefly /bin/bash
|
||||
# or
|
||||
docker-compose exec firefly /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for firefly
|
||||
- **Docker Hub**: [fireflyiii/core:latest](https://hub.docker.com/r/fireflyiii/core:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD firefly:
|
||||
- Nextcloud
|
||||
- Paperless-NGX
|
||||
- BookStack
|
||||
- Syncthing
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/firefly/firefly.yaml`
|
||||
178
docs/services/individual/flaresolverr.md
Normal file
178
docs/services/individual/flaresolverr.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# Flaresolverr
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | flaresolverr |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `flaresolverr/flaresolverr:latest` |
|
||||
| **Compose File** | `Calypso/arr_suite_with_dracula.yml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
flaresolverr is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f flaresolverr
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: flaresolverr
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: flaresolverr/flaresolverr:latest
|
||||
networks:
|
||||
media_net:
|
||||
ipv4_address: 172.23.0.3
|
||||
ports:
|
||||
- 8191:8191
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8191 | 8191 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8191:8191
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f flaresolverr
|
||||
|
||||
# Restart service
|
||||
docker-compose restart flaresolverr
|
||||
|
||||
# Update service
|
||||
docker-compose pull flaresolverr
|
||||
docker-compose up -d flaresolverr
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec flaresolverr /bin/bash
|
||||
# or
|
||||
docker-compose exec flaresolverr /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for flaresolverr
|
||||
- **Docker Hub**: [flaresolverr/flaresolverr:latest](https://hub.docker.com/r/flaresolverr/flaresolverr:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/arr_suite_with_dracula.yml`
|
||||
185
docs/services/individual/front.md
Normal file
185
docs/services/individual/front.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# Front
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | front |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/getumbrel/llama-gpt-ui:latest` |
|
||||
| **Compose File** | `Atlantis/llamagpt.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
front is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f front
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: LlamaGPT
|
||||
cpu_shares: 768
|
||||
environment:
|
||||
- OPENAI_API_KEY=REDACTED_API_KEY
|
||||
- OPENAI_API_HOST=http://llamagpt-api:8000
|
||||
- DEFAULT_MODEL=/models/llama-2-7b-chat.bin
|
||||
- WAIT_HOSTS=llamagpt-api:8000
|
||||
- WAIT_TIMEOUT=600
|
||||
healthcheck:
|
||||
test: wget --no-verbose --tries=1 --spider http://localhost:3000
|
||||
hostname: llamagpt
|
||||
image: ghcr.io/getumbrel/llama-gpt-ui:latest
|
||||
mem_limit: 1g
|
||||
ports:
|
||||
- 3136:3000
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `OPENAI_API_KEY` | `***MASKED***` | Configuration variable |
|
||||
| `OPENAI_API_HOST` | `http://llamagpt-api:8000` | Configuration variable |
|
||||
| `DEFAULT_MODEL` | `/models/llama-2-7b-chat.bin` | Configuration variable |
|
||||
| `WAIT_HOSTS` | `llamagpt-api:8000` | Configuration variable |
|
||||
| `WAIT_TIMEOUT` | `600` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3136 | 3000 | TCP | Web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:3136`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `wget --no-verbose --tries=1 --spider http://localhost:3000`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f front
|
||||
|
||||
# Restart service
|
||||
docker-compose restart front
|
||||
|
||||
# Update service
|
||||
docker-compose pull front
|
||||
docker-compose up -d front
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec front /bin/bash
|
||||
# or
|
||||
docker-compose exec front /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for front
|
||||
- **Docker Hub**: [ghcr.io/getumbrel/llama-gpt-ui:latest](https://hub.docker.com/r/ghcr.io/getumbrel/llama-gpt-ui:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/llamagpt.yml`
|
||||
369
docs/services/individual/gitea.md
Normal file
369
docs/services/individual/gitea.md
Normal file
@@ -0,0 +1,369 @@
|
||||
# Gitea - Self-Hosted Git Service
|
||||
|
||||
**🟡 Development Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | Gitea |
|
||||
| **Host** | Calypso (192.168.0.250) |
|
||||
| **Category** | Development |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Images** | `gitea/gitea:latest`, `postgres:16-bookworm` |
|
||||
| **Compose File** | `Calypso/gitea-server.yaml` |
|
||||
| **Directory** | `Calypso/` |
|
||||
| **External Domain** | `git.vish.gg` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Gitea is a lightweight, self-hosted Git service that provides a web-based interface for Git repository management, issue tracking, pull requests, and team collaboration. It's a complete DevOps platform similar to GitHub but running on your own infrastructure.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### **Web Interface**
|
||||
- **External Access**: https://git.vish.gg
|
||||
- **Internal Access**: http://calypso.tail.vish.gg:3052
|
||||
- **Local Network**: http://192.168.0.250:3052
|
||||
|
||||
### **SSH Git Access**
|
||||
- **External SSH**: `ssh://git@git.vish.gg:2222`
|
||||
- **Internal SSH**: `ssh://git@192.168.0.250:2222`
|
||||
- **Tailscale SSH**: `ssh://git@calypso.tail.vish.gg:2222`
|
||||
|
||||
## 🔌 Port Forwarding Configuration
|
||||
|
||||
### **Router Port Forward**
|
||||
| Service | External Port | Internal Port | Protocol | Purpose |
|
||||
|---------|---------------|---------------|----------|---------|
|
||||
| **Gitea SSH** | 2222 | 2222 | All | Git SSH operations |
|
||||
|
||||
### **Container Port Mappings**
|
||||
| Host Port | Container Port | Purpose |
|
||||
|-----------|----------------|---------|
|
||||
| 3052 | 3000 | Web interface |
|
||||
| 2222 | 22 | SSH Git access |
|
||||
|
||||
### **External Git Operations**
|
||||
```bash
|
||||
# Clone repository via external SSH
|
||||
git clone ssh://git@git.vish.gg:2222/username/repository.git
|
||||
|
||||
# Add external remote
|
||||
git remote add origin ssh://git@git.vish.gg:2222/username/repository.git
|
||||
|
||||
# Push to external repository
|
||||
git push origin main
|
||||
|
||||
# Clone via HTTPS (web interface)
|
||||
git clone https://git.vish.gg/username/repository.git
|
||||
```
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- PostgreSQL database container
|
||||
- Port forwarding configured for SSH access
|
||||
- Domain name pointing to external IP (optional)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/
|
||||
|
||||
# Start Gitea and database
|
||||
docker-compose -f gitea-server.yaml up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose -f gitea-server.yaml ps
|
||||
|
||||
# View logs
|
||||
docker-compose -f gitea-server.yaml logs -f
|
||||
```
|
||||
|
||||
### Initial Setup
|
||||
```bash
|
||||
# Access web interface
|
||||
http://192.168.0.250:3052
|
||||
|
||||
# Complete initial setup wizard:
|
||||
1. Database configuration (PostgreSQL)
|
||||
2. General settings (site title, admin account)
|
||||
3. Optional settings (email, security)
|
||||
4. Create admin account
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Services
|
||||
|
||||
#### **Gitea Web Service**
|
||||
```yaml
|
||||
web:
|
||||
image: gitea/gitea:latest
|
||||
container_name: Gitea
|
||||
ports:
|
||||
- 3052:3000 # Web interface
|
||||
- 2222:22 # SSH Git access
|
||||
environment:
|
||||
- USER_UID=1026
|
||||
- USER_GID=100
|
||||
- ROOT_URL=https://git.vish.gg
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=gitea-db:5432
|
||||
```
|
||||
|
||||
#### **PostgreSQL Database**
|
||||
```yaml
|
||||
db:
|
||||
image: postgres:16-bookworm
|
||||
container_name: Gitea-DB
|
||||
environment:
|
||||
- POSTGRES_DB=gitea
|
||||
- POSTGRES_USER=giteauser
|
||||
- POSTGRES_PASSWORD="REDACTED_PASSWORD"
|
||||
healthcheck:
|
||||
test: ["CMD", "pg_isready", "-q", "-d", "gitea", "-U", "giteauser"]
|
||||
```
|
||||
|
||||
### Key Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `ROOT_URL` | `https://git.vish.gg` | External access URL |
|
||||
| `USER_UID` | `1026` | User ID for file permissions |
|
||||
| `USER_GID` | `100` | Group ID for file permissions |
|
||||
| `POSTGRES_DB` | `gitea` | Database name |
|
||||
| `POSTGRES_USER` | `giteauser` | Database username |
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Purpose |
|
||||
|-----------|----------------|---------|
|
||||
| `/volume1/docker/gitea/data` | `/data` | Gitea application data |
|
||||
| `/volume1/docker/gitea/db` | `/var/lib/postgresql/data` | PostgreSQL database |
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
### **External Exposure Assessment**
|
||||
- **✅ SSH Access**: Port 2222 with key-based authentication
|
||||
- **⚠️ Web Interface**: Should be behind HTTPS reverse proxy
|
||||
- **✅ Database**: Internal container network only
|
||||
- **✅ Security Options**: `no-new-privileges:true` enabled
|
||||
|
||||
### **Security Recommendations**
|
||||
```bash
|
||||
# 1. SSH Key Authentication
|
||||
- Disable password authentication
|
||||
- Use SSH keys for all Git operations
|
||||
- Regularly rotate SSH keys
|
||||
- Monitor SSH access logs
|
||||
|
||||
# 2. Web Interface Security
|
||||
- Enable 2FA for all users
|
||||
- Use strong passwords
|
||||
- Configure HTTPS with valid certificates
|
||||
- Implement rate limiting
|
||||
|
||||
# 3. Database Security
|
||||
- Regular database backups
|
||||
- Strong database passwords
|
||||
- Database access restricted to container network
|
||||
- Monitor database logs
|
||||
|
||||
# 4. Access Control
|
||||
- Configure user permissions carefully
|
||||
- Use organization/team features for access control
|
||||
- Regular audit of user accounts and permissions
|
||||
- Monitor repository access logs
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### **Common Issues**
|
||||
|
||||
#### **SSH Git Access Not Working**
|
||||
```bash
|
||||
# Test SSH connection
|
||||
ssh -p 2222 git@git.vish.gg
|
||||
|
||||
# Check SSH key configuration
|
||||
ssh-add -l
|
||||
cat ~/.ssh/id_rsa.pub
|
||||
|
||||
# Verify port forwarding
|
||||
nmap -p 2222 git.vish.gg
|
||||
|
||||
# Check Gitea SSH settings
|
||||
docker-compose -f gitea-server.yaml logs web | grep ssh
|
||||
```
|
||||
|
||||
#### **Web Interface Not Accessible**
|
||||
```bash
|
||||
# Check container status
|
||||
docker-compose -f gitea-server.yaml ps
|
||||
|
||||
# Verify port binding
|
||||
netstat -tulpn | grep 3052
|
||||
|
||||
# Check logs for errors
|
||||
docker-compose -f gitea-server.yaml logs web
|
||||
```
|
||||
|
||||
#### **Database Connection Issues**
|
||||
```bash
|
||||
# Check database health
|
||||
docker-compose -f gitea-server.yaml logs db
|
||||
|
||||
# Test database connection
|
||||
docker-compose -f gitea-server.yaml exec db pg_isready -U giteauser
|
||||
|
||||
# Verify database credentials
|
||||
docker-compose -f gitea-server.yaml exec web env | grep POSTGRES
|
||||
```
|
||||
|
||||
### **Performance Optimization**
|
||||
```bash
|
||||
# Monitor resource usage
|
||||
docker stats Gitea Gitea-DB
|
||||
|
||||
# Optimize PostgreSQL settings
|
||||
# Edit postgresql.conf for better performance
|
||||
# Increase shared_buffers, work_mem
|
||||
|
||||
# Configure Gitea caching
|
||||
# Enable Redis cache for better performance
|
||||
# Configure Git LFS for large files
|
||||
```
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
### **Recommended Resources**
|
||||
- **Minimum RAM**: 2GB total (1GB Gitea + 1GB PostgreSQL)
|
||||
- **Recommended RAM**: 4GB+ for production use
|
||||
- **CPU**: 2+ cores for multiple concurrent users
|
||||
- **Storage**: 50GB+ for repositories and database
|
||||
- **Network**: Moderate bandwidth for Git operations
|
||||
|
||||
### **Scaling Considerations**
|
||||
- **Small teams (1-10 users)**: Default configuration sufficient
|
||||
- **Medium teams (10-50 users)**: Increase memory allocation
|
||||
- **Large teams (50+ users)**: Consider external PostgreSQL
|
||||
- **Enterprise**: Implement clustering and load balancing
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
### **Service Health Checks**
|
||||
```bash
|
||||
# Check web interface health
|
||||
curl -f http://192.168.0.250:3052/api/healthz
|
||||
|
||||
# Database health check
|
||||
docker-compose -f gitea-server.yaml exec db pg_isready -U giteauser
|
||||
|
||||
# SSH service check
|
||||
ssh -p 2222 git@192.168.0.250 info
|
||||
```
|
||||
|
||||
### **Monitoring Metrics**
|
||||
- **Active users**: Number of logged-in users
|
||||
- **Repository count**: Total repositories hosted
|
||||
- **Git operations**: Push/pull frequency and size
|
||||
- **Database performance**: Query response times
|
||||
- **Storage usage**: Repository and database disk usage
|
||||
|
||||
## 🌐 Integration with Homelab
|
||||
|
||||
### **Tailscale Access**
|
||||
```bash
|
||||
# Secure internal access
|
||||
https://calypso.tail.vish.gg:3052
|
||||
|
||||
# SSH via Tailscale
|
||||
ssh://git@calypso.tail.vish.gg:2222
|
||||
```
|
||||
|
||||
### **CI/CD Integration**
|
||||
```bash
|
||||
# Gitea Actions (built-in CI/CD)
|
||||
# Configure runners for automated builds
|
||||
# Set up webhooks for external services
|
||||
# Integrate with Docker registry
|
||||
|
||||
# External CI/CD
|
||||
# Jenkins integration via webhooks
|
||||
# GitHub Actions mirror
|
||||
# GitLab CI/CD pipeline import
|
||||
```
|
||||
|
||||
### **Backup Integration**
|
||||
```bash
|
||||
# Database backups
|
||||
docker-compose -f gitea-server.yaml exec db pg_dump -U giteauser gitea > backup.sql
|
||||
|
||||
# Repository backups
|
||||
rsync -av /volume1/docker/gitea/data/git/repositories/ /backup/gitea-repos/
|
||||
|
||||
# Automated backup scripts
|
||||
# Schedule regular backups via cron
|
||||
# Test backup restoration procedures
|
||||
```
|
||||
|
||||
## 🔐 SSO / Authentik Integration
|
||||
|
||||
Gitea uses Authentik as an OAuth2/OIDC provider. Both local login and SSO are enabled.
|
||||
|
||||
### Authentication Methods
|
||||
1. **Local Login** — Username/password (admin fallback)
|
||||
2. **OAuth2 SSO** — "Sign in with Authentik" button on login page
|
||||
|
||||
### Configuration
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| **Authentik App Slug** | `gitea` |
|
||||
| **Authentik Provider PK** | `2` |
|
||||
| **Client ID** | `7KamS51a0H7V8HyIsfMKNJ8COstZEFh4Z8Em6ZhO` |
|
||||
| **Redirect URIs** | `https://git.vish.gg/user/oauth2/authentik/callback`, `https://git.vish.gg/user/oauth2/Authentik/callback` |
|
||||
| **Discovery URL** | `https://sso.vish.gg/application/o/gitea/.well-known/openid-configuration` |
|
||||
|
||||
> **Note:** Both lower and upper-case `authentik`/`Authentik` redirect URIs are registered in Authentik — Gitea sends the capitalised form (`Authentik`) based on the auth source name.
|
||||
|
||||
### To re-register the auth source (if lost)
|
||||
```bash
|
||||
docker exec -u git Gitea gitea admin auth add-oauth \
|
||||
--name 'Authentik' \
|
||||
--provider openidConnect \
|
||||
--key <client_id> \
|
||||
--secret <client_secret> \
|
||||
--auto-discover-url 'https://sso.vish.gg/application/o/gitea/.well-known/openid-configuration' \
|
||||
--scopes 'openid email profile'
|
||||
```
|
||||
|
||||
### Status
|
||||
- **OAuth2 SSO**: ✅ Working (added 2026-03-16)
|
||||
- **Local Login**: ✅ Working
|
||||
- **Admin user**: `Vish` / `admin@thevish.io`
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: [Gitea Documentation](https://docs.gitea.io/)
|
||||
- **Docker Hub**: [Gitea Docker Image](https://hub.docker.com/r/gitea/gitea)
|
||||
- **Community**: [Gitea Discourse](https://discourse.gitea.io/)
|
||||
- **API Documentation**: [Gitea API](https://docs.gitea.io/en-us/api-usage/)
|
||||
- **Authentik Integration**: [Authentik Gitea Docs](https://docs.goauthentik.io/integrations/services/gitea/)
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
- **PostgreSQL**: Database backend
|
||||
- **Nginx**: Reverse proxy for HTTPS
|
||||
- **Docker Registry**: Container image storage
|
||||
- **Jenkins**: CI/CD integration
|
||||
- **Grafana**: Monitoring and metrics
|
||||
|
||||
---
|
||||
|
||||
*This documentation covers the complete Gitea setup including external SSH access and web interface configuration.*
|
||||
|
||||
**Last Updated**: 2026-03-16
|
||||
**Configuration Source**: `hosts/synology/calypso/gitea-server.yaml`
|
||||
**External Access**: `https://git.vish.gg` (web), `ssh://git@git.vish.gg:2222` (SSH)
|
||||
77
docs/services/individual/gmod-prophunt.md
Normal file
77
docs/services/individual/gmod-prophunt.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Garry's Mod PropHunt Server
|
||||
|
||||
## Service Information
|
||||
- **Type**: Game Server
|
||||
- **Game**: Garry's Mod
|
||||
- **Gamemode**: PropHunt
|
||||
- **Category**: Gaming
|
||||
- **Host**: seattle-vm (Contabo)
|
||||
|
||||
## Description
|
||||
Dedicated Garry's Mod server running the popular PropHunt gamemode where players hide as props while others hunt them down. Features custom maps, automated management, and optimized performance.
|
||||
|
||||
## Configuration
|
||||
- **Game Port**: 27015
|
||||
- **RCON Port**: 39903 (localhost only)
|
||||
- **Max Players**: 24
|
||||
- **Tickrate**: 66
|
||||
- **Default Map**: ph_office
|
||||
- **Process User**: gmod
|
||||
|
||||
## Features
|
||||
- PropHunt gamemode with custom maps
|
||||
- Automated server management
|
||||
- Steam Workshop integration
|
||||
- VAC anti-cheat protection
|
||||
- RCON remote administration
|
||||
- Automated restarts and updates
|
||||
- Performance monitoring
|
||||
- Custom server configurations
|
||||
|
||||
## Management
|
||||
```bash
|
||||
# Check server status
|
||||
ps aux | grep srcds_linux
|
||||
|
||||
# View server directory
|
||||
ls -la /home/gmod/gmod-prophunt-server/
|
||||
|
||||
# Docker management (alternative)
|
||||
cd /opt/gmod-prophunt/docker/
|
||||
docker-compose up -d
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
## Access
|
||||
- **Game Server**: YOUR_WAN_IP:27015
|
||||
- **RCON**: 127.0.0.1:39903 (localhost only)
|
||||
- **Steam Server Browser**: Search for "PropHunt Server"
|
||||
|
||||
## Server Features
|
||||
- **PropHunt Gameplay**: Hide as props, hunt as seekers
|
||||
- **Map Rotation**: Multiple PropHunt-specific maps
|
||||
- **Voice Chat**: In-game voice communication
|
||||
- **Admin System**: Server administration tools
|
||||
- **Anti-Cheat**: VAC protection enabled
|
||||
|
||||
## File Structure
|
||||
```
|
||||
/home/gmod/gmod-prophunt-server/
|
||||
├── srcds_run # Server startup script
|
||||
├── srcds_linux # Server binary
|
||||
├── garrysmod/ # Game files
|
||||
│ ├── addons/ # Server modifications
|
||||
│ ├── gamemodes/ # PropHunt gamemode
|
||||
│ ├── maps/ # Server maps
|
||||
│ └── cfg/ # Configuration files
|
||||
```
|
||||
|
||||
## Performance
|
||||
- **CPU Usage**: ~11% (optimized for 16 vCPU)
|
||||
- **Memory Usage**: ~1GB RAM
|
||||
- **Network**: UDP traffic on port 27015
|
||||
- **Uptime**: High availability with automatic restarts
|
||||
|
||||
## Related Documentation
|
||||
- [Seattle VM Garry's Mod Setup](../../hosts/vms/seattle/gmod-prophunt/README.md)
|
||||
- [Docker Compose Configuration](../../hosts/vms/seattle/gmod-prophunt/docker-compose.yml)
|
||||
175
docs/services/individual/gotenberg.md
Normal file
175
docs/services/individual/gotenberg.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# Gotenberg
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | gotenberg |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `gotenberg/gotenberg` |
|
||||
| **Compose File** | `Atlantis/paperlessngx.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
gotenberg is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f gotenberg
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command:
|
||||
- gotenberg
|
||||
- --chromium-disable-routes=true
|
||||
container_name: PaperlessNGX-GOTENBERG
|
||||
image: gotenberg/gotenberg
|
||||
ports:
|
||||
- 3000:3000
|
||||
restart: always
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3000 | 3000 | TCP | Web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:3000`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f gotenberg
|
||||
|
||||
# Restart service
|
||||
docker-compose restart gotenberg
|
||||
|
||||
# Update service
|
||||
docker-compose pull gotenberg
|
||||
docker-compose up -d gotenberg
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec gotenberg /bin/bash
|
||||
# or
|
||||
docker-compose exec gotenberg /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for gotenberg
|
||||
- **Docker Hub**: [gotenberg/gotenberg](https://hub.docker.com/r/gotenberg/gotenberg)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/paperlessngx.yml`
|
||||
186
docs/services/individual/gotify.md
Normal file
186
docs/services/individual/gotify.md
Normal file
@@ -0,0 +1,186 @@
|
||||
# Gotify
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | gotify |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/gotify/server:latest` |
|
||||
| **Compose File** | `homelab_vm/gotify.yml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
gotify is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f gotify
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Gotify
|
||||
environment:
|
||||
GOTIFY_DEFAULTUSER_NAME: vish
|
||||
GOTIFY_DEFAULTUSER_PASS: "REDACTED_PASSWORD"
|
||||
TZ: America/Los_Angeles
|
||||
image: ghcr.io/gotify/server:latest
|
||||
ports:
|
||||
- 8081:80
|
||||
restart: on-failure:5
|
||||
volumes:
|
||||
- /home/homelab/docker/gotify:/app/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `GOTIFY_DEFAULTUSER_NAME` | `vish` | Configuration variable |
|
||||
| `GOTIFY_DEFAULTUSER_PASS` | `REDACTED_PASSWORD` | Configuration variable |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8081 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/homelab/docker/gotify` | `/app/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:8081`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f gotify
|
||||
|
||||
# Restart service
|
||||
docker-compose restart gotify
|
||||
|
||||
# Update service
|
||||
docker-compose pull gotify
|
||||
docker-compose up -d gotify
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec gotify /bin/bash
|
||||
# or
|
||||
docker-compose exec gotify /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for gotify
|
||||
- **Docker Hub**: [ghcr.io/gotify/server:latest](https://hub.docker.com/r/ghcr.io/gotify/server:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/gotify.yml`
|
||||
191
docs/services/individual/grafana-oauth.md
Normal file
191
docs/services/individual/grafana-oauth.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# Grafana OAuth2 with Authentik
|
||||
|
||||
**Host**: Homelab VM (192.168.0.210)
|
||||
**Domain**: `gf.vish.gg`
|
||||
**Port**: 3300
|
||||
**Compose File**: `homelab_vm/monitoring.yaml`
|
||||
**Status**: ✅ Working
|
||||
|
||||
## Overview
|
||||
|
||||
Grafana is configured to use Authentik OAuth2 for Single Sign-On (SSO). This allows users to log in with their Authentik credentials while maintaining local admin access.
|
||||
|
||||
## Authentication Methods
|
||||
|
||||
1. **Local Login** - Username/password form (admin/admin by default)
|
||||
2. **OAuth2 SSO** - "Sign in with Authentik" button
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
User Browser
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Cloudflare │
|
||||
│ (gf.vish.gg) │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ NPM (Calypso) │ ← Direct proxy, NO forward auth
|
||||
│ Port 443 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Grafana │
|
||||
│ 192.168.0.210 │
|
||||
│ Port 3300 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
│ OAuth2 Flow
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Authentik │
|
||||
│ sso.vish.gg │
|
||||
│ Port 9000 │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
## Important: OAuth2 vs Forward Auth
|
||||
|
||||
**DO NOT** use Authentik Forward Auth (proxy provider) for Grafana. Grafana has native OAuth2 support which provides:
|
||||
- Role mapping based on Authentik groups
|
||||
- Proper session management
|
||||
- User identity within Grafana
|
||||
|
||||
Forward Auth intercepts requests before they reach Grafana, preventing the OAuth2 flow from working.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Authentik Setup
|
||||
|
||||
1. **Create OAuth2/OpenID Provider** in Authentik:
|
||||
- Name: `Grafana OAuth2`
|
||||
- Client Type: Confidential
|
||||
- Client ID: `lEGw1UJ9Mhk6QVrNA61rAsr59Kel9gAvdPQ1FAJA`
|
||||
- Redirect URIs: `https://gf.vish.gg/login/generic_oauth`
|
||||
|
||||
2. **CRITICAL: Add Scope Mappings** to the provider:
|
||||
- `authentik default OAuth Mapping: OpenID 'openid'`
|
||||
- `authentik default OAuth Mapping: OpenID 'email'`
|
||||
- `authentik default OAuth Mapping: OpenID 'profile'`
|
||||
|
||||
Without these, Authentik won't return email/name claims and Grafana will fail with "InternalError".
|
||||
|
||||
3. **Create Application** in Authentik:
|
||||
- Name: `Grafana`
|
||||
- Slug: `grafana`
|
||||
- Provider: Select the OAuth2 provider created above
|
||||
|
||||
### Grafana Environment Variables
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
# OAuth2 SSO Configuration
|
||||
- GF_AUTH_GENERIC_OAUTH_ENABLED=true
|
||||
- GF_AUTH_GENERIC_OAUTH_NAME=Authentik
|
||||
- GF_AUTH_GENERIC_OAUTH_CLIENT_ID=<client_id_from_authentik>
|
||||
- GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=<client_secret_from_authentik>
|
||||
- GF_AUTH_GENERIC_OAUTH_SCOPES=openid profile email
|
||||
- GF_AUTH_GENERIC_OAUTH_AUTH_URL=https://sso.vish.gg/application/o/authorize/
|
||||
- GF_AUTH_GENERIC_OAUTH_TOKEN_URL=https://sso.vish.gg/application/o/token/
|
||||
- GF_AUTH_GENERIC_OAUTH_API_URL=https://sso.vish.gg/application/o/userinfo/
|
||||
- GF_AUTH_SIGNOUT_REDIRECT_URL=https://sso.vish.gg/application/o/grafana/end-session/
|
||||
|
||||
# CRITICAL: Attribute paths to extract user info from Authentik response
|
||||
- GF_AUTH_GENERIC_OAUTH_EMAIL_ATTRIBUTE_PATH=email
|
||||
- GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH=preferred_username
|
||||
- GF_AUTH_GENERIC_OAUTH_NAME_ATTRIBUTE_PATH=name
|
||||
|
||||
# Role mapping based on Authentik groups
|
||||
- GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH=contains(groups[*], 'Grafana Admins') && 'Admin' || contains(groups[*], 'Grafana Editors') && 'Editor' || 'Viewer'
|
||||
|
||||
# Additional recommended settings
|
||||
- GF_AUTH_GENERIC_OAUTH_USE_PKCE=true
|
||||
- GF_AUTH_GENERIC_OAUTH_ALLOW_ASSIGN_GRAFANA_ADMIN=true
|
||||
|
||||
# Required for OAuth callbacks
|
||||
- GF_SERVER_ROOT_URL=https://gf.vish.gg
|
||||
```
|
||||
|
||||
### NPM (Nginx Proxy Manager) Setup
|
||||
|
||||
The proxy host for `gf.vish.gg` should:
|
||||
- Forward to `192.168.0.210:3300`
|
||||
- **NOT** have any Authentik forward auth configuration
|
||||
- Enable WebSocket support (for Grafana Live)
|
||||
- Enable SSL
|
||||
|
||||
**Advanced Config should be EMPTY** - no auth_request directives.
|
||||
|
||||
### Role Mapping
|
||||
|
||||
Create these groups in Authentik and add users:
|
||||
- `Grafana Admins` → Admin role in Grafana
|
||||
- `Grafana Editors` → Editor role in Grafana
|
||||
- No group → Viewer role (default)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "InternalError" after OAuth login
|
||||
|
||||
**Cause 1**: Missing scope mappings in Authentik provider.
|
||||
|
||||
**Solution**: In Authentik Admin → Providers → Grafana OAuth2 → Edit:
|
||||
- Add scope mappings for `openid`, `email`, `profile`
|
||||
|
||||
Verify scopes are configured:
|
||||
```bash
|
||||
curl https://sso.vish.gg/application/o/grafana/.well-known/openid-configuration | jq '.scopes_supported'
|
||||
# Should include: ["openid", "email", "profile"]
|
||||
```
|
||||
|
||||
**Cause 2**: Missing email attribute path in Grafana config.
|
||||
|
||||
**Solution**: Ensure these env vars are set:
|
||||
```
|
||||
GF_AUTH_GENERIC_OAUTH_EMAIL_ATTRIBUTE_PATH=email
|
||||
GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH=preferred_username
|
||||
```
|
||||
|
||||
### Redirect loop between Grafana and Authentik
|
||||
|
||||
**Cause**: Forward Auth is configured in NPM alongside OAuth2.
|
||||
|
||||
**Solution**: Remove the Authentik forward auth config from NPM's Advanced Config for gf.vish.gg.
|
||||
|
||||
### Check Grafana logs
|
||||
|
||||
```bash
|
||||
docker logs grafana --tail 100 2>&1 | grep -i "oauth\|error"
|
||||
```
|
||||
|
||||
### Test Authentik userinfo endpoint
|
||||
|
||||
```bash
|
||||
curl https://sso.vish.gg/application/o/userinfo/
|
||||
# Should return REDACTED_APP_PASSWORD when authenticated
|
||||
```
|
||||
|
||||
### Verify OAuth provider configuration via API
|
||||
|
||||
```bash
|
||||
# Check provider has scope mappings
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
https://sso.vish.gg/api/v3/providers/oauth2/1/ | jq '.property_mappings'
|
||||
# Should NOT be empty
|
||||
```
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [Authentik Service](./authentik.md)
|
||||
- [Grafana Generic OAuth Docs](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/generic-oauth/)
|
||||
- [Authentik Grafana Integration](https://docs.goauthentik.io/integrations/services/grafana/)
|
||||
|
||||
## Change Log
|
||||
|
||||
- **2026-01-31**: Initial OAuth2 setup, removed forward auth from NPM
|
||||
- **2026-01-31**: Added email/login/name attribute paths to fix userinfo parsing
|
||||
- **2026-01-31**: Added scope mappings (openid, email, profile) to Authentik provider - **THIS WAS THE FIX**
|
||||
151
docs/services/individual/grafana.md
Normal file
151
docs/services/individual/grafana.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# Grafana
|
||||
|
||||
**Monitoring Service**
|
||||
|
||||
## Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | grafana |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Monitoring |
|
||||
| **Docker Image** | `grafana/grafana-oss:12.4.0` |
|
||||
| **Compose File** | `hosts/vms/homelab-vm/monitoring.yaml` |
|
||||
| **Stack** | `monitoring-stack` (Portainer stack ID 687, endpoint 443399) |
|
||||
| **Deployment** | GitOps via Portainer |
|
||||
|
||||
## Purpose
|
||||
|
||||
Grafana is the metrics visualization and dashboarding layer for the homelab monitoring stack. It connects to Prometheus as its datasource and provides dashboards for infrastructure health, NAS metrics, and node-level detail.
|
||||
|
||||
## Access
|
||||
|
||||
| Method | URL |
|
||||
|--------|-----|
|
||||
| **External (SSO)** | `https://gf.vish.gg` |
|
||||
| **Internal** | `http://192.168.0.210:3300` |
|
||||
| **Local (on VM)** | `http://localhost:3300` |
|
||||
|
||||
Authentication is via **Authentik SSO** (`sso.vish.gg`). The local `admin` account is also available for API/CLI use.
|
||||
|
||||
## Dashboards
|
||||
|
||||
| Dashboard | UID | Source |
|
||||
|-----------|-----|--------|
|
||||
| Node Details - Full Metrics *(default home)* | `node-details-v2` | DB (imported) |
|
||||
| Infrastructure Overview - All Devices | `infrastructure-overview-v2` | Provisioned (monitoring.yaml) |
|
||||
| Synology NAS Monitoring | `synology-dashboard-v2` | Provisioned (monitoring.yaml) |
|
||||
| Node Exporter Full | `rYdddlPWk` | DB (imported from grafana.com) |
|
||||
|
||||
> **Note**: `node-details-v2` and `Node Exporter Full` exist only in the `grafana-data` volume (DB). If the volume is deleted, they must be re-imported. The provisioned dashboards (Infrastructure Overview, Synology NAS) are embedded in `monitoring.yaml` and survive volume deletion.
|
||||
|
||||
The default home dashboard (`node-details-v2`) is set via the Grafana org preferences API and persists in the DB across container restarts.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Key Environment Variables
|
||||
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `GF_SECURITY_ADMIN_USER` | `admin` | Local admin username |
|
||||
| `GF_SECURITY_ADMIN_PASSWORD` | `admin2024` | Local admin password (first-run only; does not override DB after initial setup) |
|
||||
| `GF_FEATURE_TOGGLES_DISABLE` | `kubernetesDashboards` | Disables Grafana 12 unified storage feature toggle (prevents log spam, restores stable behavior) |
|
||||
| `GF_SERVER_ROOT_URL` | `https://gf.vish.gg` | Public URL for redirect/SSO |
|
||||
| `GF_AUTH_GENERIC_OAUTH_ENABLED` | `true` | Authentik SSO enabled |
|
||||
|
||||
### Ports
|
||||
|
||||
| Host Port | Container Port | Purpose |
|
||||
|-----------|----------------|---------|
|
||||
| 3300 | 3000 | Web interface |
|
||||
|
||||
### Volumes
|
||||
|
||||
| Volume | Container Path | Purpose |
|
||||
|--------|----------------|---------|
|
||||
| `monitoring-stack_grafana-data` | `/var/lib/grafana` | Persistent data (DB, plugins, sessions) |
|
||||
|
||||
### Provisioned Configs (Docker configs, not bind mounts)
|
||||
|
||||
| Config | Target | Purpose |
|
||||
|--------|--------|---------|
|
||||
| `grafana_datasources` | `/etc/grafana/provisioning/datasources/datasources.yaml` | Prometheus datasource |
|
||||
| `grafana_dashboards_config` | `/etc/grafana/provisioning/dashboards/dashboards.yaml` | Dashboard provider config |
|
||||
| `dashboard_infrastructure` | `/etc/grafana/provisioning/dashboards/json/infrastructure-overview.json` | Infrastructure Overview dashboard |
|
||||
| `dashboard_synology` | `/etc/grafana/provisioning/dashboards/json/synology-monitoring.json` | Synology NAS dashboard |
|
||||
|
||||
## Authentik SSO
|
||||
|
||||
Grafana OAuth2 is configured to use Authentik at `sso.vish.gg`. Role mapping:
|
||||
|
||||
| Authentik Group | Grafana Role |
|
||||
|-----------------|-------------|
|
||||
| `Grafana Admins` | Admin |
|
||||
| `Grafana Editors` | Editor |
|
||||
| *(everyone else)* | Viewer |
|
||||
|
||||
See `docs/services/individual/grafana-oauth.md` for setup details.
|
||||
|
||||
## Useful Commands
|
||||
|
||||
```bash
|
||||
# Check container status
|
||||
docker ps --filter name=grafana
|
||||
|
||||
# View logs
|
||||
docker logs grafana -f
|
||||
|
||||
# Reset admin password (if locked out)
|
||||
docker exec grafana grafana cli --homepath /usr/share/grafana admin reset-admin-password <newpassword>
|
||||
|
||||
# Set org home dashboard via API
|
||||
curl -X PUT http://admin:<password>@localhost:3300/api/org/preferences \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"REDACTED_APP_PASSWORD": "node-details-v2"}'
|
||||
|
||||
# Check current home dashboard
|
||||
curl -s http://admin:<password>@localhost:3300/api/org/preferences
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Admin password not working after redeploy
|
||||
`GF_SECURITY_ADMIN_PASSWORD` only applies on the very first run (empty DB). Subsequent redeployments do not reset it. Use the CLI reset:
|
||||
```bash
|
||||
docker exec grafana grafana cli --homepath /usr/share/grafana admin reset-admin-password <newpassword>
|
||||
```
|
||||
|
||||
### Home dashboard reverts to Grafana welcome page
|
||||
The home dashboard is stored in the `preferences` table in `grafana.db`. It survives container restarts as long as the `grafana-data` volume is not deleted. If lost, re-set it via:
|
||||
```bash
|
||||
curl -X PUT http://admin:<password>@localhost:3300/api/org/preferences \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"REDACTED_APP_PASSWORD": "node-details-v2"}'
|
||||
```
|
||||
|
||||
### "No last resource version found" log spam
|
||||
This is caused by the `kubernetesDashboards` feature toggle being on by default in Grafana 12. It is disabled via `GF_FEATURE_TOGGLES_DISABLE=kubernetesDashboards` in `monitoring.yaml`.
|
||||
|
||||
### Dashboards missing after volume wipe
|
||||
Re-import `Node Details - Full Metrics` and `Node Exporter Full` from grafana.com (IDs: search grafana.com/grafana/dashboards). The provisioned dashboards (Infrastructure Overview, Synology NAS) will auto-restore from `monitoring.yaml` configs.
|
||||
|
||||
## Related Services
|
||||
|
||||
- **Prometheus** — metrics datasource (`http://prometheus:9090`)
|
||||
- **Node Exporter** — host metrics (port 9100)
|
||||
- **SNMP Exporter** — Synology NAS metrics (port 9116)
|
||||
- **Authentik** — SSO provider (`sso.vish.gg`)
|
||||
- **Nginx Proxy Manager** — reverse proxy for `gf.vish.gg`
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- `docs/admin/monitoring-setup.md` — monitoring stack quick reference
|
||||
- `docs/admin/monitoring.md` — full monitoring & observability guide
|
||||
- `docs/services/individual/grafana-oauth.md` — Authentik SSO setup
|
||||
- `docs/infrastructure/monitoring/README.md` — monitoring stack architecture
|
||||
- `hosts/vms/homelab-vm/monitoring.yaml` — compose file (source of truth)
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2026-03-08
|
||||
**Configuration Source**: `hosts/vms/homelab-vm/monitoring.yaml`
|
||||
677
docs/services/individual/headscale.md
Normal file
677
docs/services/individual/headscale.md
Normal file
@@ -0,0 +1,677 @@
|
||||
# Headscale - Self-Hosted Tailscale Control Server
|
||||
|
||||
**Status**: 🟢 Live
|
||||
**Host**: Calypso (`100.103.48.78`)
|
||||
**Stack File**: `hosts/synology/calypso/headscale.yaml`
|
||||
**Public URL**: `https://headscale.vish.gg:8443`
|
||||
**Admin UI**: `https://headscale.vish.gg:8443/admin` (Headplane, Authentik SSO)
|
||||
**Ports**: 8085 (API), 3002 (Headplane UI), 9099 (Metrics), 50443 (gRPC)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
[Headscale](https://headscale.net/) is an open-source, self-hosted implementation of the Tailscale control server. It allows you to run your own Tailscale coordination server, giving you full control over your mesh VPN network.
|
||||
|
||||
### Why Self-Host?
|
||||
|
||||
| Feature | Tailscale Cloud | Headscale |
|
||||
|---------|-----------------|-----------|
|
||||
| **Control** | Tailscale manages | You manage |
|
||||
| **Data Privacy** | Keys on their servers | Keys on your servers |
|
||||
| **Cost** | Free tier limits | Unlimited devices |
|
||||
| **OIDC Auth** | Limited | Full control |
|
||||
| **Network Isolation** | Shared infra | Your infra only |
|
||||
|
||||
---
|
||||
|
||||
## Recommended Host: Calypso
|
||||
|
||||
### Why Calypso?
|
||||
|
||||
| Factor | Rationale |
|
||||
|--------|-----------|
|
||||
| **Authentik Integration** | OIDC provider already running for SSO |
|
||||
| **Nginx Proxy Manager** | HTTPS/SSL termination already configured |
|
||||
| **Infrastructure Role** | Hosts auth, git, networking services |
|
||||
| **Stability** | Synology NAS = 24/7 uptime |
|
||||
| **Resources** | Low footprint fits alongside 52 containers |
|
||||
|
||||
### Alternative Hosts
|
||||
|
||||
- **Homelab VM**: Viable, but separates auth from control plane
|
||||
- **Concord NUC**: Running Home Assistant, keep it focused
|
||||
- **Atlantis**: Primary media server, avoid network-critical services
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Internet
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ NPM (Calypso) │ ← SSL termination
|
||||
│ headscale.vish.gg
|
||||
└────────┬────────┘
|
||||
│ :8085
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Headscale │ ← Control plane
|
||||
│ (container) │
|
||||
└────────┬────────┘
|
||||
│ OIDC
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Authentik │ ← User auth
|
||||
│ sso.vish.gg │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
### Network Flow
|
||||
|
||||
1. Tailscale clients connect to `headscale.vish.gg` (HTTPS)
|
||||
2. NPM terminates SSL, forwards to Headscale container
|
||||
3. Users authenticate via Authentik OIDC
|
||||
4. Headscale coordinates the mesh network
|
||||
5. Direct connections established between peers (via DERP relays if needed)
|
||||
|
||||
---
|
||||
|
||||
## Services
|
||||
|
||||
| Service | Container | Port | Purpose |
|
||||
|---------|-----------|------|---------|
|
||||
| Headscale | `headscale` | 8085→8080 | Control server API |
|
||||
| Headscale | `headscale` | 50443 | gRPC API |
|
||||
| Headscale | `headscale` | 9099→9090 | Prometheus metrics |
|
||||
| Headplane | `headplane` | 3002→3000 | Web admin UI (replaces headscale-ui) |
|
||||
|
||||
---
|
||||
|
||||
## Pre-Deployment Setup
|
||||
|
||||
### Step 1: Create Authentik Application
|
||||
|
||||
In Authentik at `https://sso.vish.gg`:
|
||||
|
||||
#### 1.1 Create OAuth2/OIDC Provider
|
||||
|
||||
1. Go to **Applications** → **Providers** → **Create**
|
||||
2. Select **OAuth2/OpenID Provider**
|
||||
3. Configure:
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Name | `Headscale` |
|
||||
| Authorization flow | `default-provider-authorization-implicit-consent` |
|
||||
| Client type | `Confidential` |
|
||||
| Client ID | (auto-generated, copy this) |
|
||||
| Client Secret | (auto-generated, copy this) |
|
||||
| Redirect URIs | `https://headscale.vish.gg/oidc/callback` |
|
||||
| Signing Key | `authentik Self-signed Certificate` |
|
||||
|
||||
4. Under **Advanced protocol settings**:
|
||||
- Scopes: `openid`, `profile`, `email`
|
||||
- Subject mode: `Based on the User's Email`
|
||||
|
||||
#### 1.2 Create Application
|
||||
|
||||
1. Go to **Applications** → **Applications** → **Create**
|
||||
2. Configure:
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Name | `Headscale` |
|
||||
| Slug | `headscale` |
|
||||
| Provider | Select the provider you created |
|
||||
| Launch URL | `https://headscale.vish.gg` |
|
||||
|
||||
#### 1.3 Copy Credentials
|
||||
|
||||
Save these values to update the stack:
|
||||
- **Client ID**: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||||
- **Client Secret**: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||||
|
||||
### Step 2: Configure NPM Proxy Hosts
|
||||
|
||||
In Nginx Proxy Manager at `http://calypso.vish.local:81`:
|
||||
|
||||
#### 2.1 Headscale API Proxy
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Domain Names | `headscale.vish.gg` |
|
||||
| Scheme | `http` |
|
||||
| Forward Hostname/IP | `headscale` |
|
||||
| Forward Port | `8080` |
|
||||
| Block Common Exploits | ✅ |
|
||||
| Websockets Support | ✅ |
|
||||
|
||||
**SSL Tab:**
|
||||
- SSL Certificate: Request new Let's Encrypt
|
||||
- Force SSL: ✅
|
||||
- HTTP/2 Support: ✅
|
||||
|
||||
#### 2.2 Headplane UI Proxy (via /admin path on main domain)
|
||||
|
||||
The Headplane UI is served at `https://headscale.vish.gg:8443/admin` via NPM path routing.
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Domain Names | `headscale.vish.gg` |
|
||||
| Scheme | `http` |
|
||||
| Forward Hostname/IP | `headplane` |
|
||||
| Forward Port | `3000` |
|
||||
| Custom Location | `/admin` |
|
||||
|
||||
### Step 3: Verify Authentik Network
|
||||
|
||||
```bash
|
||||
# SSH to Calypso and check the network name
|
||||
ssh admin@calypso.vish.local
|
||||
docker network ls | grep authentik
|
||||
```
|
||||
|
||||
If the network name differs from `authentik-net`, update the stack file.
|
||||
|
||||
### Step 4: Update Stack Configuration
|
||||
|
||||
Edit `hosts/synology/calypso/headscale.yaml`:
|
||||
|
||||
```yaml
|
||||
oidc:
|
||||
client_id: "REDACTED_CLIENT_ID"
|
||||
client_secret: "REDACTED_CLIENT_SECRET"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deployment
|
||||
|
||||
### Option A: GitOps via Portainer
|
||||
|
||||
```bash
|
||||
# 1. Commit the stack file
|
||||
cd /path/to/homelab
|
||||
git add hosts/synology/calypso/headscale.yaml
|
||||
git commit -m "feat(headscale): Add self-hosted Tailscale control server"
|
||||
git push origin main
|
||||
|
||||
# 2. Create GitOps stack via API
|
||||
curl -X POST \
|
||||
-H "X-API-Key: "REDACTED_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
"http://vishinator.synology.me:10000/api/stacks/create/standalone/repository?endpointId=443397" \
|
||||
-d '{
|
||||
"name": "headscale-stack",
|
||||
"repositoryURL": "https://git.vish.gg/Vish/homelab.git",
|
||||
"repositoryReferenceName": "refs/heads/main",
|
||||
"composeFile": "hosts/synology/calypso/headscale.yaml",
|
||||
"repositoryAuthentication": true,
|
||||
"repositoryUsername": "",
|
||||
"repositoryPassword": "YOUR_GIT_TOKEN",
|
||||
"autoUpdate": {
|
||||
"interval": "5m",
|
||||
"forceUpdate": false,
|
||||
"forcePullImage": false
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### Option B: Manual via Portainer UI
|
||||
|
||||
1. Go to Portainer → Stacks → Add stack
|
||||
2. Select "Repository"
|
||||
3. Configure:
|
||||
- Repository URL: `https://git.vish.gg/Vish/homelab.git`
|
||||
- Reference: `refs/heads/main`
|
||||
- Compose path: `hosts/synology/calypso/headscale.yaml`
|
||||
- Authentication: Enable, enter Git token
|
||||
4. Enable GitOps updates with 5m polling
|
||||
5. Deploy
|
||||
|
||||
---
|
||||
|
||||
## Post-Deployment Verification
|
||||
|
||||
### 1. Check Container Health
|
||||
|
||||
```bash
|
||||
# Via Portainer API
|
||||
curl -s -H "X-API-Key: TOKEN" \
|
||||
"http://vishinator.synology.me:10000/api/endpoints/443397/docker/containers/json" | \
|
||||
jq '.[] | select(.Names[0] | contains("headscale")) | {name: .Names[0], state: .State}'
|
||||
```
|
||||
|
||||
### 2. Test API Endpoint
|
||||
|
||||
```bash
|
||||
curl -s https://headscale.vish.gg/health
|
||||
# Should return: {"status":"pass"}
|
||||
```
|
||||
|
||||
### 3. Check Metrics
|
||||
|
||||
```bash
|
||||
curl -s http://calypso.vish.local:9099/metrics | head -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Client Setup
|
||||
|
||||
### Linux/macOS
|
||||
|
||||
```bash
|
||||
# Install Tailscale client
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
|
||||
# Connect to your Headscale server
|
||||
sudo tailscale up --login-server=https://headscale.vish.gg
|
||||
|
||||
# This will open a browser for OIDC authentication
|
||||
# After auth, the device will be registered
|
||||
```
|
||||
|
||||
### With Pre-Auth Key
|
||||
|
||||
```bash
|
||||
# Generate key in Headscale first (see Admin Commands below)
|
||||
sudo tailscale up --login-server=https://headscale.vish.gg --authkey=YOUR_PREAUTH_KEY
|
||||
```
|
||||
|
||||
### iOS/Android
|
||||
|
||||
1. Install Tailscale app from App Store/Play Store
|
||||
2. Open app → Use a different server
|
||||
3. Enter: `https://headscale.vish.gg`
|
||||
4. Authenticate via Authentik
|
||||
|
||||
### Verify Connection
|
||||
|
||||
```bash
|
||||
tailscale status
|
||||
# Should show your device and any other connected peers
|
||||
|
||||
tailscale ip
|
||||
# Shows your Tailscale IP (100.64.x.x)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Admin Commands
|
||||
|
||||
Execute commands inside the Headscale container on Calypso:
|
||||
|
||||
```bash
|
||||
# SSH to Calypso
|
||||
ssh -p 62000 Vish@100.103.48.78
|
||||
|
||||
# Enter container (full path required on Synology)
|
||||
sudo /usr/local/bin/docker exec headscale headscale <command>
|
||||
```
|
||||
|
||||
> **Note**: Headscale v0.28+ uses numeric user IDs. Get the ID with `users list` first, then pass `--user <ID>` to other commands.
|
||||
|
||||
### User Management
|
||||
|
||||
```bash
|
||||
# List users (shows numeric IDs)
|
||||
headscale users list
|
||||
|
||||
# Create a user
|
||||
headscale users create myuser
|
||||
|
||||
# Rename a user
|
||||
headscale users rename --identifier <id> <newname>
|
||||
|
||||
# Delete a user
|
||||
headscale users destroy --identifier <id>
|
||||
```
|
||||
|
||||
### Node Management
|
||||
|
||||
```bash
|
||||
# List all nodes
|
||||
headscale nodes list
|
||||
|
||||
# Register a node manually
|
||||
headscale nodes register --user <user-id> --key nodekey:xxxxx
|
||||
|
||||
# Delete a node
|
||||
headscale nodes delete --identifier <node-id>
|
||||
|
||||
# Expire a node (force re-auth)
|
||||
headscale nodes expire --identifier <node-id>
|
||||
|
||||
# Move node to different user
|
||||
headscale nodes move --identifier <node-id> --user <user-id>
|
||||
```
|
||||
|
||||
### Pre-Auth Keys
|
||||
|
||||
```bash
|
||||
# Create a pre-auth key (single use)
|
||||
headscale preauthkeys create --user <user-id>
|
||||
|
||||
# Create reusable key (expires in 24h)
|
||||
headscale preauthkeys create --user <user-id> --reusable --expiration 24h
|
||||
|
||||
# List keys
|
||||
headscale preauthkeys list --user <user-id>
|
||||
```
|
||||
|
||||
### API Keys
|
||||
|
||||
```bash
|
||||
# Create API key for external integrations
|
||||
headscale apikeys create --expiration 90d
|
||||
|
||||
# List API keys
|
||||
headscale apikeys list
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Route & Exit Node Management
|
||||
|
||||
> **How it works**: Exit node and subnet routes are a two-step process.
|
||||
> 1. The **node** must advertise the route via `tailscale set --advertise-exit-node` or `--advertise-routes`.
|
||||
> 2. The **server** (Headscale) must approve the advertised route. Without approval, the route is visible but not active.
|
||||
|
||||
All commands below are run inside the Headscale container on Calypso:
|
||||
|
||||
```bash
|
||||
ssh -p 62000 Vish@100.103.48.78 "sudo /usr/local/bin/docker exec headscale headscale <command>"
|
||||
```
|
||||
|
||||
### List All Routes
|
||||
|
||||
Shows every node that is advertising routes, what is approved, and what is actively serving:
|
||||
|
||||
```bash
|
||||
headscale nodes list-routes
|
||||
```
|
||||
|
||||
Output columns:
|
||||
- **Approved**: routes the server has approved
|
||||
- **Available**: routes the node is currently advertising
|
||||
- **Serving (Primary)**: routes actively being used
|
||||
|
||||
### Approve an Exit Node
|
||||
|
||||
After a node runs `tailscale set --advertise-exit-node`, approve it server-side:
|
||||
|
||||
```bash
|
||||
# Find the node ID first
|
||||
headscale nodes list
|
||||
|
||||
# Approve exit node routes (IPv4 + IPv6)
|
||||
headscale nodes approve-routes --identifier <node-id> --routes '0.0.0.0/0,::/0'
|
||||
```
|
||||
|
||||
If the node also advertises a subnet route you want to keep approved alongside exit node:
|
||||
|
||||
```bash
|
||||
# Example: calypso also advertises 192.168.0.0/24
|
||||
headscale nodes approve-routes --identifier 12 --routes '0.0.0.0/0,::/0,192.168.0.0/24'
|
||||
```
|
||||
|
||||
> **Important**: `approve-routes` **replaces** the full approved route list for that node. Always include all routes you want active (subnet routes + exit routes) in a single command.
|
||||
|
||||
### Approve a Subnet Route Only
|
||||
|
||||
For nodes that advertise a local subnet (e.g. a router or NAS providing LAN access) but are not exit nodes:
|
||||
|
||||
```bash
|
||||
# Example: approve 192.168.0.0/24 for atlantis
|
||||
headscale nodes approve-routes --identifier 11 --routes '192.168.0.0/24'
|
||||
```
|
||||
|
||||
### Revoke / Remove Routes
|
||||
|
||||
To remove approval for a route, re-run `approve-routes` omitting that route:
|
||||
|
||||
```bash
|
||||
# Example: remove exit node approval from a node, keep subnet only
|
||||
headscale nodes approve-routes --identifier <node-id> --routes '192.168.0.0/24'
|
||||
|
||||
# Remove all approved routes from a node
|
||||
headscale nodes approve-routes --identifier <node-id> --routes ''
|
||||
```
|
||||
|
||||
### Current Exit Nodes (March 2026)
|
||||
|
||||
The following nodes are approved as exit nodes:
|
||||
|
||||
| Node | ID | Exit Node Routes | Subnet Routes |
|
||||
|------|----|-----------------|---------------|
|
||||
| vish-concord-nuc | 5 | `0.0.0.0/0`, `::/0` | `192.168.68.0/22` |
|
||||
| setillo | 6 | `0.0.0.0/0`, `::/0` | `192.168.69.0/24` |
|
||||
| truenas-scale | 8 | `0.0.0.0/0`, `::/0` | — |
|
||||
| atlantis | 11 | `0.0.0.0/0`, `::/0` | — |
|
||||
| calypso | 12 | `0.0.0.0/0`, `::/0` | `192.168.0.0/24` |
|
||||
| gl-mt3000 | 16 | `0.0.0.0/0`, `::/0` | `192.168.12.0/24` |
|
||||
| gl-be3600 | 17 | `0.0.0.0/0`, `::/0` | `192.168.8.0/24` |
|
||||
| homeassistant | 19 | `0.0.0.0/0`, `::/0` | — |
|
||||
|
||||
---
|
||||
|
||||
## Adding a New Node
|
||||
|
||||
### Step 1: Install Tailscale on the new device
|
||||
|
||||
**Linux:**
|
||||
```bash
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
```
|
||||
|
||||
**Synology NAS:** Install the Tailscale package from Package Center (or manually via `.spk`).
|
||||
|
||||
**TrueNAS Scale:** Available as an app in the TrueNAS app catalog.
|
||||
|
||||
**Home Assistant:** Install via the HA Add-on Store (search "Tailscale").
|
||||
|
||||
**OpenWrt / GL.iNet routers:** Install `tailscale` via `opkg` or the GL.iNet admin panel.
|
||||
|
||||
### Step 2: Generate a pre-auth key (recommended for non-interactive installs)
|
||||
|
||||
```bash
|
||||
# Get the user ID first
|
||||
headscale users list
|
||||
|
||||
# Create a reusable pre-auth key (24h expiry)
|
||||
headscale preauthkeys create --user <user-id> --reusable --expiration 24h
|
||||
```
|
||||
|
||||
### Step 3: Connect the node
|
||||
|
||||
**Interactive (browser-based OIDC auth):**
|
||||
```bash
|
||||
sudo tailscale up --login-server=https://headscale.vish.gg
|
||||
# Follow the printed URL to authenticate via Authentik
|
||||
```
|
||||
|
||||
**Non-interactive (pre-auth key):**
|
||||
```bash
|
||||
sudo tailscale up --login-server=https://headscale.vish.gg --authkey=<preauth-key>
|
||||
```
|
||||
|
||||
**With exit node advertising enabled from the start:**
|
||||
```bash
|
||||
sudo tailscale up \
|
||||
--login-server=https://headscale.vish.gg \
|
||||
--authkey=<preauth-key> \
|
||||
--advertise-exit-node
|
||||
```
|
||||
|
||||
**With subnet route advertising:**
|
||||
```bash
|
||||
sudo tailscale up \
|
||||
--login-server=https://headscale.vish.gg \
|
||||
--authkey=<preauth-key> \
|
||||
--advertise-routes=192.168.1.0/24
|
||||
```
|
||||
|
||||
### Step 4: Verify the node registered
|
||||
|
||||
```bash
|
||||
headscale nodes list
|
||||
# New node should appear with an assigned 100.x.x.x IP
|
||||
```
|
||||
|
||||
### Step 5: Approve routes (if needed)
|
||||
|
||||
If the node advertised exit node or subnet routes:
|
||||
```bash
|
||||
headscale nodes list-routes
|
||||
# Find the node ID and approve as needed
|
||||
headscale nodes approve-routes --identifier <node-id> --routes '0.0.0.0/0,::/0'
|
||||
```
|
||||
|
||||
### Step 6: (Optional) Rename the node
|
||||
|
||||
Headscale uses the system hostname by default. To rename:
|
||||
```bash
|
||||
headscale nodes rename --identifier <node-id> <new-name>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration Reference
|
||||
|
||||
### Key Settings in `config.yaml`
|
||||
|
||||
| Setting | Value | Description |
|
||||
|---------|-------|-------------|
|
||||
| `server_url` | `https://headscale.vish.gg:8443` | Public URL for clients (port 8443 required) |
|
||||
| `listen_addr` | `0.0.0.0:8080` | Internal listen address |
|
||||
| `prefixes.v4` | `100.64.0.0/10` | IPv4 CGNAT range |
|
||||
| `prefixes.v6` | `fd7a:115c:a1e0::/48` | IPv6 ULA range |
|
||||
| `dns.magic_dns` | `true` | Enable MagicDNS |
|
||||
| `dns.base_domain` | `tail.vish.gg` | DNS suffix for devices |
|
||||
| `database.type` | `sqlite` | Database backend |
|
||||
| `oidc.issuer` | `https://sso.vish.gg/...` | Authentik OIDC endpoint |
|
||||
|
||||
### DERP Configuration
|
||||
|
||||
Using Tailscale's public DERP servers (recommended):
|
||||
```yaml
|
||||
derp:
|
||||
urls:
|
||||
- https://controlplane.tailscale.com/derpmap/default
|
||||
auto_update_enabled: true
|
||||
```
|
||||
|
||||
For self-hosted DERP, see: https://tailscale.com/kb/1118/custom-derp-servers
|
||||
|
||||
---
|
||||
|
||||
## Monitoring Integration
|
||||
|
||||
### Prometheus Scrape Config
|
||||
|
||||
Add to your Prometheus configuration:
|
||||
|
||||
```yaml
|
||||
scrape_configs:
|
||||
- job_name: 'headscale'
|
||||
static_configs:
|
||||
- targets: ['calypso.vish.local:9099']
|
||||
labels:
|
||||
instance: 'headscale'
|
||||
```
|
||||
|
||||
### Key Metrics
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| `headscale_connected_peers` | Number of connected peers |
|
||||
| `headscale_registered_machines` | Total registered machines |
|
||||
| `headscale_online_machines` | Currently online machines |
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Client Can't Connect
|
||||
|
||||
1. **Check DNS resolution**: `nslookup headscale.vish.gg`
|
||||
2. **Check SSL certificate**: `curl -v https://headscale.vish.gg/health`
|
||||
3. **Check NPM logs**: Portainer → Calypso → nginx-proxy-manager → Logs
|
||||
4. **Check Headscale logs**: `docker logs headscale`
|
||||
|
||||
### OIDC Authentication Fails
|
||||
|
||||
1. **Verify Authentik is reachable**: `curl https://sso.vish.gg/.well-known/openid-configuration`
|
||||
2. **Check redirect URI**: Must exactly match in Authentik provider
|
||||
3. **Check client credentials**: Ensure ID/secret are correct in config
|
||||
4. **Check Headscale logs**: `docker logs headscale | grep oidc`
|
||||
|
||||
### Nodes Not Connecting to Each Other
|
||||
|
||||
1. **Check DERP connectivity**: Nodes may be relaying through DERP
|
||||
2. **Check firewall**: Ensure UDP 41641 is open for direct connections
|
||||
3. **Check node status**: `tailscale status` on each node
|
||||
|
||||
### Container Won't Start
|
||||
|
||||
1. **Check config syntax**: YAML formatting errors
|
||||
2. **Check network exists**: `docker network ls | grep authentik`
|
||||
3. **Check volume permissions**: Synology may have permission issues
|
||||
|
||||
---
|
||||
|
||||
## Backup
|
||||
|
||||
### Data to Backup
|
||||
|
||||
| Path | Content |
|
||||
|------|---------|
|
||||
| `headscale-data:/var/lib/headscale/db.sqlite` | User/node database |
|
||||
| `headscale-data:/var/lib/headscale/private.key` | Server private key |
|
||||
| `headscale-data:/var/lib/headscale/noise_private.key` | Noise protocol key |
|
||||
|
||||
### Backup Command
|
||||
|
||||
```bash
|
||||
# On Calypso
|
||||
docker run --rm -v headscale-data:/data -v /volume1/backups:/backup \
|
||||
alpine tar czf /backup/headscale-backup-$(date +%Y%m%d).tar.gz /data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Migration from Tailscale
|
||||
|
||||
If migrating existing devices from Tailscale cloud:
|
||||
|
||||
1. **On each device**: `sudo tailscale logout`
|
||||
2. **Connect to Headscale**: `sudo tailscale up --login-server=https://headscale.vish.gg`
|
||||
3. **Re-establish routes**: Configure exit nodes and subnet routes as needed
|
||||
|
||||
**Note**: You cannot migrate Tailscale cloud configuration directly. ACLs, routes, and settings must be reconfigured.
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [Authentik SSO Setup](authentik.md)
|
||||
- [Nginx Proxy Manager](nginx-proxy-manager.md)
|
||||
- [GitOps Guide](../../admin/gitops.md)
|
||||
- [Monitoring Setup](../../admin/monitoring.md)
|
||||
|
||||
---
|
||||
|
||||
## External Resources
|
||||
|
||||
- [Headscale Documentation](https://headscale.net/stable/)
|
||||
- [Headscale GitHub](https://github.com/juanfont/headscale)
|
||||
- [Headplane GitHub](https://github.com/tale/headplane) (Admin UI — replaces headscale-ui)
|
||||
- [Tailscale Client Docs](https://tailscale.com/kb/)
|
||||
|
||||
---
|
||||
|
||||
*Last updated: March 2026 (added Route & Exit Node Management section, Adding a New Node walkthrough; exit nodes approved for atlantis, calypso, homeassistant, setillo, truenas-scale, vish-concord-nuc)*
|
||||
176
docs/services/individual/homeassistant.md
Normal file
176
docs/services/individual/homeassistant.md
Normal file
@@ -0,0 +1,176 @@
|
||||
# Homeassistant
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | homeassistant |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/home-assistant/home-assistant:stable` |
|
||||
| **Compose File** | `concord_nuc/homeassistant.yaml` |
|
||||
| **Directory** | `concord_nuc` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
homeassistant is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f homeassistant
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: homeassistant
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: ghcr.io/home-assistant/home-assistant:stable
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- /home/vish/docker/homeassistant:/config
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/vish/docker/homeassistant` | `/config` | bind | Configuration files |
|
||||
| `/etc/localtime` | `/etc/localtime` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f homeassistant
|
||||
|
||||
# Restart service
|
||||
docker-compose restart homeassistant
|
||||
|
||||
# Update service
|
||||
docker-compose pull homeassistant
|
||||
docker-compose up -d homeassistant
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec homeassistant /bin/bash
|
||||
# or
|
||||
docker-compose exec homeassistant /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for homeassistant
|
||||
- **Docker Hub**: [ghcr.io/home-assistant/home-assistant:stable](https://hub.docker.com/r/ghcr.io/home-assistant/home-assistant:stable)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/homeassistant.yaml`
|
||||
188
docs/services/individual/hyperpipe-back.md
Normal file
188
docs/services/individual/hyperpipe-back.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Hyperpipe Back
|
||||
|
||||
**🟡 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | hyperpipe-back |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `codeberg.org/hyperpipe/hyperpipe-backend:latest` |
|
||||
| **Compose File** | `Atlantis/piped.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
hyperpipe-back is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f hyperpipe-back
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Hyperpipe-API
|
||||
cpu_shares: 768
|
||||
depends_on:
|
||||
nginx:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
HYP_PROXY: hyperpipe-proxy.onrender.com
|
||||
hostname: hyperpipe-backend
|
||||
image: codeberg.org/hyperpipe/hyperpipe-backend:latest
|
||||
mem_limit: 512m
|
||||
ports:
|
||||
- 3771:3000
|
||||
read_only: true
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `HYP_PROXY` | `hyperpipe-proxy.onrender.com` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3771 | 3000 | TCP | Web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:3771`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
- ✅ Read-only root filesystem
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f hyperpipe-back
|
||||
|
||||
# Restart service
|
||||
docker-compose restart hyperpipe-back
|
||||
|
||||
# Update service
|
||||
docker-compose pull hyperpipe-back
|
||||
docker-compose up -d hyperpipe-back
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec hyperpipe-back /bin/bash
|
||||
# or
|
||||
docker-compose exec hyperpipe-back /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for hyperpipe-back
|
||||
- **Docker Hub**: [codeberg.org/hyperpipe/hyperpipe-backend:latest](https://hub.docker.com/r/codeberg.org/hyperpipe/hyperpipe-backend:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/piped.yml`
|
||||
178
docs/services/individual/hyperpipe-front.md
Normal file
178
docs/services/individual/hyperpipe-front.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# Hyperpipe Front
|
||||
|
||||
**🟡 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | hyperpipe-front |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `codeberg.org/hyperpipe/hyperpipe:latest` |
|
||||
| **Compose File** | `Atlantis/piped.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
hyperpipe-front is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f hyperpipe-front
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Hyperpipe-FRONTEND
|
||||
cpu_shares: 768
|
||||
depends_on:
|
||||
hyperpipe-back:
|
||||
condition: service_started
|
||||
entrypoint: sh -c 'find /usr/share/nginx/html -type f -exec sed -i s/pipedapi.kavin.rocks/pipedapi.vishinator.synology.me/g
|
||||
{} \; -exec sed -i s/hyperpipeapi.onrender.com/hyperpipeapi.vishinator.synology.me/g
|
||||
{} \; && /docker-entrypoint.sh && nginx -g "daemon off;"'
|
||||
healthcheck:
|
||||
test: wget --no-verbose --tries=1 --spider http://localhost
|
||||
hostname: hyperpipe-frontend
|
||||
image: codeberg.org/hyperpipe/hyperpipe:latest
|
||||
mem_limit: 512m
|
||||
ports:
|
||||
- 8745:80
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8745 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:8745`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `wget --no-verbose --tries=1 --spider http://localhost`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f hyperpipe-front
|
||||
|
||||
# Restart service
|
||||
docker-compose restart hyperpipe-front
|
||||
|
||||
# Update service
|
||||
docker-compose pull hyperpipe-front
|
||||
docker-compose up -d hyperpipe-front
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec hyperpipe-front /bin/bash
|
||||
# or
|
||||
docker-compose exec hyperpipe-front /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for hyperpipe-front
|
||||
- **Docker Hub**: [codeberg.org/hyperpipe/hyperpipe:latest](https://hub.docker.com/r/codeberg.org/hyperpipe/hyperpipe:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/piped.yml`
|
||||
203
docs/services/individual/immich-db.md
Normal file
203
docs/services/individual/immich-db.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Immich Db
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | immich-db |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0` |
|
||||
| **Compose File** | `Calypso/immich/docker-compose.yml` |
|
||||
| **Directory** | `Calypso/immich` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
High performance self-hosted photo and video backup solution.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/immich
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f immich-db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Immich-DB
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
- POSTGRES_DB=immich
|
||||
- POSTGRES_USER=immichuser
|
||||
- POSTGRES_PASSWORD="REDACTED_PASSWORD"
|
||||
- DB_STORAGE_TYPE=HDD
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
retries: 5
|
||||
test:
|
||||
- CMD
|
||||
- pg_isready
|
||||
- -q
|
||||
- -d
|
||||
- immich
|
||||
- -U
|
||||
- immichuser
|
||||
timeout: 5s
|
||||
hostname: immich-db
|
||||
image: ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
shm_size: 128mb
|
||||
volumes:
|
||||
- /volume1/docker/immich/db:/var/lib/postgresql/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `POSTGRES_DB` | `immich` | Configuration variable |
|
||||
| `POSTGRES_USER` | `immichuser` | Configuration variable |
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
| `DB_STORAGE_TYPE` | `HDD` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/immich/db` | `/var/lib/postgresql/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD pg_isready -q -d immich -U immichuser`
|
||||
**Check Interval**: 10s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 5
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f immich-db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart immich-db
|
||||
|
||||
# Update service
|
||||
docker-compose pull immich-db
|
||||
docker-compose up -d immich-db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec immich-db /bin/bash
|
||||
# or
|
||||
docker-compose exec immich-db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for immich-db
|
||||
- **Docker Hub**: [ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0](https://hub.docker.com/r/ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD immich-db:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/immich/docker-compose.yml`
|
||||
202
docs/services/individual/immich-machine-learning.md
Normal file
202
docs/services/individual/immich-machine-learning.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# Immich Machine Learning
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | immich-machine-learning |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `ghcr.io/immich-app/immich-machine-learning:release` |
|
||||
| **Compose File** | `Calypso/immich/docker-compose.yml` |
|
||||
| **Directory** | `Calypso/immich` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
High performance self-hosted photo and video backup solution.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/immich
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f immich-machine-learning
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Immich-LEARNING
|
||||
depends_on:
|
||||
immich-db:
|
||||
condition: service_started
|
||||
env_file:
|
||||
- stack.env
|
||||
environment:
|
||||
- MPLCONFIGDIR=/matplotlib
|
||||
hostname: immich-machine-learning
|
||||
image: ghcr.io/immich-app/immich-machine-learning:release
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
volumes:
|
||||
- /volume1/docker/immich/upload:/data:rw
|
||||
- /volume1/docker/immich/external_photos/photos:/external/photos:rw
|
||||
- /volume1/docker/immich/cache:/cache:rw
|
||||
- /volume1/docker/immich/cache:/.cache:rw
|
||||
- /volume1/docker/immich/cache:/.config:rw
|
||||
- /volume1/docker/immich/matplotlib:/matplotlib:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `MPLCONFIGDIR` | `/matplotlib` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/immich/upload` | `/data` | bind | Application data |
|
||||
| `/volume1/docker/immich/external_photos/photos` | `/external/photos` | bind | Data storage |
|
||||
| `/volume1/docker/immich/cache` | `/cache` | bind | Cache data |
|
||||
| `/volume1/docker/immich/cache` | `/.cache` | bind | Data storage |
|
||||
| `/volume1/docker/immich/cache` | `/.config` | bind | Data storage |
|
||||
| `/volume1/docker/immich/matplotlib` | `/matplotlib` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f immich-machine-learning
|
||||
|
||||
# Restart service
|
||||
docker-compose restart immich-machine-learning
|
||||
|
||||
# Update service
|
||||
docker-compose pull immich-machine-learning
|
||||
docker-compose up -d immich-machine-learning
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec immich-machine-learning /bin/bash
|
||||
# or
|
||||
docker-compose exec immich-machine-learning /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for immich-machine-learning
|
||||
- **Docker Hub**: [ghcr.io/immich-app/immich-machine-learning:release](https://hub.docker.com/r/ghcr.io/immich-app/immich-machine-learning:release)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD immich-machine-learning:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/immich/docker-compose.yml`
|
||||
184
docs/services/individual/immich-redis.md
Normal file
184
docs/services/individual/immich-redis.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Immich Redis
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | immich-redis |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `redis` |
|
||||
| **Compose File** | `Calypso/immich/docker-compose.yml` |
|
||||
| **Directory** | `Calypso/immich` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
High performance self-hosted photo and video backup solution.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/immich
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f immich-redis
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Immich-REDIS
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- redis-cli ping || exit 1
|
||||
hostname: immich-redis
|
||||
image: redis
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
volumes:
|
||||
- /volume1/docker/immich/redis:/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/immich/redis` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD-SHELL redis-cli ping || exit 1`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f immich-redis
|
||||
|
||||
# Restart service
|
||||
docker-compose restart immich-redis
|
||||
|
||||
# Update service
|
||||
docker-compose pull immich-redis
|
||||
docker-compose up -d immich-redis
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec immich-redis /bin/bash
|
||||
# or
|
||||
docker-compose exec immich-redis /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for immich-redis
|
||||
- **Docker Hub**: [Official immich-redis](https://hub.docker.com/_/redis)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD immich-redis:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/immich/docker-compose.yml`
|
||||
195
docs/services/individual/immich-server.md
Normal file
195
docs/services/individual/immich-server.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# Immich Server
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | immich-server |
|
||||
| **Host** | raspberry-pi-5-vish |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}` |
|
||||
| **Compose File** | `raspberry-pi-5-vish/immich/docker-compose.yml` |
|
||||
| **Directory** | `raspberry-pi-5-vish/immich` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
High performance self-hosted photo and video backup solution.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (raspberry-pi-5-vish)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd raspberry-pi-5-vish/immich
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f immich-server
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: immich_server
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
env_file:
|
||||
- .env
|
||||
healthcheck:
|
||||
interval: 30s
|
||||
retries: 5
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- -f
|
||||
- http://localhost:2283/api/server-info
|
||||
timeout: 5s
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
ports:
|
||||
- 2283:2283
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 2283 | 2283 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `${UPLOAD_LOCATION}` | `/data` | volume | Application data |
|
||||
| `/etc/localtime` | `/etc/localtime` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 2283:2283
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD curl -f http://localhost:2283/api/server-info`
|
||||
**Check Interval**: 30s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 5
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f immich-server
|
||||
|
||||
# Restart service
|
||||
docker-compose restart immich-server
|
||||
|
||||
# Update service
|
||||
docker-compose pull immich-server
|
||||
docker-compose up -d immich-server
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec immich-server /bin/bash
|
||||
# or
|
||||
docker-compose exec immich-server /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for immich-server
|
||||
- **Docker Hub**: [ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}](https://hub.docker.com/r/ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release})
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD immich-server:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `raspberry-pi-5-vish/immich/docker-compose.yml`
|
||||
187
docs/services/individual/importer.md
Normal file
187
docs/services/individual/importer.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Importer
|
||||
|
||||
**🟡 Productivity Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | importer |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Productivity |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `fireflyiii/data-importer:latest` |
|
||||
| **Compose File** | `Calypso/firefly/firefly.yaml` |
|
||||
| **Directory** | `Calypso/firefly` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
importer is a productivity application that helps manage tasks, documents, or workflows.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso/firefly
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f importer
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Firefly-Importer
|
||||
depends_on:
|
||||
firefly:
|
||||
condition: service_healthy
|
||||
hostname: firefly-importer
|
||||
image: fireflyiii/data-importer:latest
|
||||
ports:
|
||||
- 6192:8080
|
||||
restart: on-failure:5
|
||||
security_opt:
|
||||
- no-new-privileges:false
|
||||
volumes:
|
||||
- /volume1/docker/firefly/importer:/var/www/html/storage/upload:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 6192 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/firefly/importer` | `/var/www/html/storage/upload` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Calypso:6192`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f importer
|
||||
|
||||
# Restart service
|
||||
docker-compose restart importer
|
||||
|
||||
# Update service
|
||||
docker-compose pull importer
|
||||
docker-compose up -d importer
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec importer /bin/bash
|
||||
# or
|
||||
docker-compose exec importer /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for importer
|
||||
- **Docker Hub**: [fireflyiii/data-importer:latest](https://hub.docker.com/r/fireflyiii/data-importer:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD importer:
|
||||
- Nextcloud
|
||||
- Paperless-NGX
|
||||
- BookStack
|
||||
- Syncthing
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/firefly/firefly.yaml`
|
||||
182
docs/services/individual/inv-sig-helper.md
Normal file
182
docs/services/individual/inv-sig-helper.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# Inv Sig Helper
|
||||
|
||||
**🟢 Development Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | inv_sig_helper |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Development |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `quay.io/invidious/inv-sig-helper:latest` |
|
||||
| **Compose File** | `concord_nuc/invidious/invidious_old/invidious.yaml` |
|
||||
| **Directory** | `concord_nuc/invidious/invidious_old` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
inv_sig_helper is a development tool that assists with code management, CI/CD, or software development workflows.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc/invidious/invidious_old
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f inv_sig_helper
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
cap_drop:
|
||||
- ALL
|
||||
command:
|
||||
- --tcp
|
||||
- 0.0.0.0:12999
|
||||
environment:
|
||||
- RUST_LOG=info
|
||||
image: quay.io/invidious/inv-sig-helper:latest
|
||||
init: true
|
||||
read_only: true
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `RUST_LOG` | `info` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
- ✅ Read-only root filesystem
|
||||
- ✅ Capabilities dropped
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f inv_sig_helper
|
||||
|
||||
# Restart service
|
||||
docker-compose restart inv_sig_helper
|
||||
|
||||
# Update service
|
||||
docker-compose pull inv_sig_helper
|
||||
docker-compose up -d inv_sig_helper
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec inv_sig_helper /bin/bash
|
||||
# or
|
||||
docker-compose exec inv_sig_helper /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for inv_sig_helper
|
||||
- **Docker Hub**: [quay.io/invidious/inv-sig-helper:latest](https://hub.docker.com/r/quay.io/invidious/inv-sig-helper:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD inv_sig_helper:
|
||||
- GitLab
|
||||
- Gitea
|
||||
- Jenkins
|
||||
- Portainer
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/invidious/invidious_old/invidious.yaml`
|
||||
183
docs/services/individual/invidious-db.md
Normal file
183
docs/services/individual/invidious-db.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# Invidious Db
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | invidious-db |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `docker.io/library/postgres:14` |
|
||||
| **Compose File** | `concord_nuc/invidious/invidious_old/invidious.yaml` |
|
||||
| **Directory** | `concord_nuc/invidious/invidious_old` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
invidious-db is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc/invidious/invidious_old
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f invidious-db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
environment:
|
||||
POSTGRES_DB: invidious
|
||||
POSTGRES_PASSWORD: "REDACTED_PASSWORD"
|
||||
POSTGRES_USER: kemal
|
||||
healthcheck:
|
||||
interval: 30s
|
||||
retries: 3
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB
|
||||
timeout: 5s
|
||||
image: docker.io/library/postgres:14
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- postgresdata:/var/lib/postgresql/data
|
||||
- ./config/sql:/config/sql
|
||||
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `POSTGRES_DB` | `invidious` | Configuration variable |
|
||||
| `POSTGRES_USER` | `kemal` | Configuration variable |
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `postgresdata` | `/var/lib/postgresql/data` | volume | Application data |
|
||||
| `./config/sql` | `/config/sql` | bind | Configuration files |
|
||||
| `./docker/init-invidious-db.sh` | `/docker-entrypoint-initdb.d/init-invidious-db.sh` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD-SHELL pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB`
|
||||
**Check Interval**: 30s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 3
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f invidious-db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart invidious-db
|
||||
|
||||
# Update service
|
||||
docker-compose pull invidious-db
|
||||
docker-compose up -d invidious-db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec invidious-db /bin/bash
|
||||
# or
|
||||
docker-compose exec invidious-db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for invidious-db
|
||||
- **Docker Hub**: [docker.io/library/postgres:14](https://hub.docker.com/r/docker.io/library/postgres:14)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/invidious/invidious_old/invidious.yaml`
|
||||
136
docs/services/individual/invidious.md
Normal file
136
docs/services/individual/invidious.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# Invidious
|
||||
|
||||
**🟢 Active Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | invidious |
|
||||
| **Host** | concord-nuc (vish-concord-nuc) |
|
||||
| **Category** | Privacy / Media |
|
||||
| **Docker Image** | `quay.io/invidious/invidious:latest` |
|
||||
| **Compose File** | `hosts/physical/concord-nuc/invidious/invidious.yaml` |
|
||||
| **Portainer Stack** | `invidious-stack` (ID: 584, Endpoint: 443398) |
|
||||
| **Public URL** | https://in.vish.gg |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Invidious is a privacy-respecting alternative YouTube frontend. It strips tracking, allows watching without an account, and supports RSS feeds for subscriptions. Paired with [Materialious](http://concord-nuc:3001) as an alternative Material UI.
|
||||
|
||||
## 🐳 Stack Services
|
||||
|
||||
The `invidious-stack` compose file defines four services:
|
||||
|
||||
| Service | Image | Port | Purpose |
|
||||
|---------|-------|------|---------|
|
||||
| `invidious` | `quay.io/invidious/invidious:latest` | 3000 | Main frontend |
|
||||
| `companion` | `quay.io/invidious/invidious-companion:latest` | 8282 (internal) | YouTube stream handler |
|
||||
| `invidious-db` | `postgres:14` | 5432 (internal) | PostgreSQL database |
|
||||
| `materialious` | `wardpearce/materialious:latest` | 3001 | Alternative Material UI |
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Invidious Config (`INVIDIOUS_CONFIG`)
|
||||
|
||||
```yaml
|
||||
db:
|
||||
dbname: invidious
|
||||
user: kemal
|
||||
password: "REDACTED_PASSWORD"
|
||||
host: invidious-db
|
||||
port: 5432
|
||||
check_tables: true
|
||||
invidious_companion:
|
||||
- private_url: "http://companion:8282/companion"
|
||||
invidious_companion_key: "pha6nuser7ecei1E"
|
||||
hmac_key: "Kai5eexiewohchei"
|
||||
```
|
||||
|
||||
### Companion Config
|
||||
|
||||
```yaml
|
||||
SERVER_SECRET_KEY: pha6nuser7ecei1E # Must match invidious_companion_key; exactly 16 alphanumeric chars
|
||||
SERVER_BASE_PATH: /companion
|
||||
HOST: 0.0.0.0
|
||||
PORT: 8282
|
||||
```
|
||||
|
||||
### Nginx Reverse Proxy
|
||||
|
||||
`in.vish.gg` is served by nginx on the NUC (`/etc/nginx/sites-enabled/in.vish.gg.conf`), proxying to `http://127.0.0.1:3000` with TLS via Certbot/Let's Encrypt.
|
||||
|
||||
## 🌐 Access
|
||||
|
||||
| Interface | URL |
|
||||
|-----------|-----|
|
||||
| Public (HTTPS) | https://in.vish.gg |
|
||||
| Local Invidious | http://192.168.68.100:3000 |
|
||||
| Local Materialious | http://192.168.68.100:3001 |
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
- **Invidious**: `wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending` every 30s
|
||||
- **invidious-db**: `pg_isready -U kemal -d invidious` every 30s
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### 502 Bad Gateway on in.vish.gg
|
||||
|
||||
Nginx is up but Invidious isn't responding on port 3000. Check container status via Portainer (endpoint `vish-concord-nuc`, stack `invidious-stack`) or:
|
||||
|
||||
```bash
|
||||
# Via Portainer API
|
||||
curl -s -H "X-API-Key: <key>" \
|
||||
"http://vishinator.synology.me:10000/api/endpoints/443398/docker/containers/json?all=true" | \
|
||||
jq -r '.[] | select(.Names[0] | test("invidious-stack")) | "\(.Names[0]) \(.State) \(.Status)"'
|
||||
```
|
||||
|
||||
### Invidious crash-loops: "password authentication failed for user kemal"
|
||||
|
||||
**Root cause**: PostgreSQL 14 defaults to `scram-sha-256` auth, which the Crystal DB driver in Invidious does not support.
|
||||
|
||||
**Fix**: Change `pg_hba.conf` on the `invidious-db` container to use `trust` for the Docker subnet, then reload:
|
||||
|
||||
```bash
|
||||
# Exec into invidious-db as postgres user (via Portainer API exec or docker exec)
|
||||
awk '{if(/host all all all scram-sha-256/) print "host all all 172.21.0.0/16 trust"; else print}' \
|
||||
/var/lib/postgresql/data/pg_hba.conf > /tmp/hba.tmp && \
|
||||
mv /tmp/hba.tmp /var/lib/postgresql/data/pg_hba.conf
|
||||
psql -U kemal -d invidious -c "SELECT pg_reload_conf();"
|
||||
```
|
||||
|
||||
> **Note**: The `pg_hba.conf` lives inside the `postgresdata` Docker volume, so this change persists across container restarts — but will be lost if the volume is deleted and recreated.
|
||||
|
||||
### Companion crash-loops: "SERVER_SECRET_KEY contains invalid characters"
|
||||
|
||||
**Root cause**: Portainer's GitOps stack editor can bake the literal string `REDACTED_SECRET_KEY` into the container env when a stack is re-saved via the UI, replacing the real secret with the redaction placeholder.
|
||||
|
||||
**Fix**: Update the Portainer stack file via API, replacing `REDACTED_SECRET_KEY` with `pha6nuser7ecei1E`. See `scripts/portainer-emergency-fix.sh` for API key and base URL.
|
||||
|
||||
The key must be exactly **16 alphanumeric characters** (a-z, A-Z, 0-9 only — no underscores or special chars).
|
||||
|
||||
### Checking logs via Portainer API
|
||||
|
||||
```bash
|
||||
# Get container ID first
|
||||
ID=$(curl -s -H "X-API-Key: <key>" \
|
||||
"http://vishinator.synology.me:10000/api/endpoints/443398/docker/containers/json?all=true" | \
|
||||
jq -r '.[] | select(.Names[0] == "/invidious-stack-invidious-1") | .Id')
|
||||
|
||||
# Fetch logs (binary Docker stream format — pipe through strings or tr)
|
||||
curl -s --max-time 10 -H "X-API-Key: <key>" \
|
||||
"http://vishinator.synology.me:10000/api/endpoints/443398/docker/containers/${ID}/logs?stdout=1&stderr=1&tail=50" | \
|
||||
tr -cd '[:print:]\n'
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- [Invidious GitHub](https://github.com/iv-org/invidious)
|
||||
- [Invidious Companion GitHub](https://github.com/iv-org/invidious-companion)
|
||||
- [Materialious GitHub](https://github.com/WardPearce/Materialious)
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2026-02-27
|
||||
**Configuration Source**: `hosts/physical/concord-nuc/invidious/invidious.yaml`
|
||||
165
docs/services/individual/iperf3.md
Normal file
165
docs/services/individual/iperf3.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# Iperf3
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | iperf3 |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `networkstatic/iperf3` |
|
||||
| **Compose File** | `Calypso/iperf3.yml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
iperf3 is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f iperf3
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
command: -s
|
||||
container_name: iperf3
|
||||
image: networkstatic/iperf3
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f iperf3
|
||||
|
||||
# Restart service
|
||||
docker-compose restart iperf3
|
||||
|
||||
# Update service
|
||||
docker-compose pull iperf3
|
||||
docker-compose up -d iperf3
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec iperf3 /bin/bash
|
||||
# or
|
||||
docker-compose exec iperf3 /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for iperf3
|
||||
- **Docker Hub**: [networkstatic/iperf3](https://hub.docker.com/r/networkstatic/iperf3)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/iperf3.yml`
|
||||
183
docs/services/individual/it-tools.md
Normal file
183
docs/services/individual/it-tools.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# It Tools
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | it-tools |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `corentinth/it-tools:latest` |
|
||||
| **Compose File** | `Atlantis/it_tools.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
it-tools is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f it-tools
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: IT-Tools
|
||||
environment:
|
||||
- TZ=UTC
|
||||
image: corentinth/it-tools:latest
|
||||
labels:
|
||||
- com.docker.compose.service.description=IT Tools Dashboard
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 10k
|
||||
ports:
|
||||
- 5545:80
|
||||
restart: always
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `UTC` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 5545 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:5545`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f it-tools
|
||||
|
||||
# Restart service
|
||||
docker-compose restart it-tools
|
||||
|
||||
# Update service
|
||||
docker-compose pull it-tools
|
||||
docker-compose up -d it-tools
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec it-tools /bin/bash
|
||||
# or
|
||||
docker-compose exec it-tools /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for it-tools
|
||||
- **Docker Hub**: [corentinth/it-tools:latest](https://hub.docker.com/r/corentinth/it-tools:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/it_tools.yml`
|
||||
205
docs/services/individual/jackett.md
Normal file
205
docs/services/individual/jackett.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# Jackett
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jackett |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `lscr.io/linuxserver/jackett:latest` |
|
||||
| **Compose File** | `Atlantis/arr-suite/docker-compose.yml` |
|
||||
| **Directory** | `Atlantis/arr-suite` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
jackett is a media management and streaming service that helps organize and serve your digital media content.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/arr-suite
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jackett
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jackett
|
||||
environment:
|
||||
- PUID=1029
|
||||
- PGID=65536
|
||||
- TZ=America/Los_Angeles
|
||||
- UMASK=022
|
||||
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:jackett
|
||||
- TP_THEME=dracula
|
||||
image: lscr.io/linuxserver/jackett:latest
|
||||
networks:
|
||||
media2_net:
|
||||
ipv4_address: 172.24.0.11
|
||||
ports:
|
||||
- 9117:9117
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker2/jackett:/config
|
||||
- /volume1/data:/downloads
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1029` | User ID for file permissions |
|
||||
| `PGID` | `65536` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `UMASK` | `022` | Configuration variable |
|
||||
| `DOCKER_MODS` | `ghcr.io/themepark-dev/theme.park:jackett` | Configuration variable |
|
||||
| `TP_THEME` | `dracula` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9117 | 9117 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker2/jackett` | `/config` | bind | Configuration files |
|
||||
| `/volume1/data` | `/downloads` | bind | Downloaded files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 9117:9117
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jackett
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jackett
|
||||
|
||||
# Update service
|
||||
docker-compose pull jackett
|
||||
docker-compose up -d jackett
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jackett /bin/bash
|
||||
# or
|
||||
docker-compose exec jackett /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jackett
|
||||
- **Docker Hub**: [lscr.io/linuxserver/jackett:latest](https://hub.docker.com/r/lscr.io/linuxserver/jackett:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD jackett:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/arr-suite/docker-compose.yml`
|
||||
184
docs/services/individual/jdownloader-2.md
Normal file
184
docs/services/individual/jdownloader-2.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Jdownloader 2
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jdownloader-2 |
|
||||
| **Host** | Chicago_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `jlesage/jdownloader-2` |
|
||||
| **Compose File** | `Chicago_vm/jdownloader2.yml` |
|
||||
| **Directory** | `Chicago_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
jdownloader-2 is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Chicago_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Chicago_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jdownloader-2
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jdownloader2
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: jlesage/jdownloader-2
|
||||
ports:
|
||||
- 13016:5900
|
||||
- 53578:5800
|
||||
- 20123:3129
|
||||
restart: always
|
||||
volumes:
|
||||
- /root/docker/j2/output:/output
|
||||
- /root/docker/j2/config:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 13016 | 5900 | TCP | Service port |
|
||||
| 53578 | 5800 | TCP | Service port |
|
||||
| 20123 | 3129 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/root/docker/j2/output` | `/output` | bind | Data storage |
|
||||
| `/root/docker/j2/config` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 13016:5900, 53578:5800, 20123:3129
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jdownloader-2
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jdownloader-2
|
||||
|
||||
# Update service
|
||||
docker-compose pull jdownloader-2
|
||||
docker-compose up -d jdownloader-2
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jdownloader-2 /bin/bash
|
||||
# or
|
||||
docker-compose exec jdownloader-2 /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jdownloader-2
|
||||
- **Docker Hub**: [jlesage/jdownloader-2](https://hub.docker.com/r/jlesage/jdownloader-2)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Chicago_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Chicago_vm/jdownloader2.yml`
|
||||
205
docs/services/individual/jellyfin.md
Normal file
205
docs/services/individual/jellyfin.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# Jellyfin
|
||||
|
||||
**🟡 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jellyfin |
|
||||
| **Host** | Chicago_vm |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `jellyfin/jellyfin` |
|
||||
| **Compose File** | `Chicago_vm/jellyfin.yml` |
|
||||
| **Directory** | `Chicago_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Chicago_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Chicago_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jellyfin
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jellyfin
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=http://stuff.thevish.io
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
image: jellyfin/jellyfin
|
||||
ports:
|
||||
- 8096:8096
|
||||
- 8920:8920
|
||||
- 7359:7359/udp
|
||||
- 1900:1900/udp
|
||||
restart: unless-stopped
|
||||
user: 0:0
|
||||
volumes:
|
||||
- /root/jellyfin/config:/config
|
||||
- /root/jellyfin/cache:/cache
|
||||
- /root/jellyfin/media:/media
|
||||
- /root/jellyfin/media2:/media2:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `JELLYFIN_PublishedServerUrl` | `http://stuff.thevish.io` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8096 | 8096 | TCP | Service port |
|
||||
| 8920 | 8920 | TCP | Service port |
|
||||
| 7359 | 7359 | UDP | Service port |
|
||||
| 1900 | 1900 | UDP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/root/jellyfin/config` | `/config` | bind | Configuration files |
|
||||
| `/root/jellyfin/cache` | `/cache` | bind | Cache data |
|
||||
| `/root/jellyfin/media` | `/media` | bind | Media files |
|
||||
| `/root/jellyfin/media2` | `/media2` | bind | Media files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8096:8096, 8920:8920, 7359:7359/udp, 1900:1900/udp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jellyfin
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jellyfin
|
||||
|
||||
# Update service
|
||||
docker-compose pull jellyfin
|
||||
docker-compose up -d jellyfin
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jellyfin /bin/bash
|
||||
# or
|
||||
docker-compose exec jellyfin /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jellyfin
|
||||
- **Docker Hub**: [jellyfin/jellyfin](https://hub.docker.com/r/jellyfin/jellyfin)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
- **Jellyfin Documentation**: https://jellyfin.org/docs/
|
||||
- **Jellyfin Forum**: https://forum.jellyfin.org/
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD jellyfin:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Chicago_vm/jellyfin.yml`
|
||||
187
docs/services/individual/jellyseerr.md
Normal file
187
docs/services/individual/jellyseerr.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Jellyseerr
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jellyseerr |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `fallenbagel/jellyseerr:latest` |
|
||||
| **Compose File** | `Calypso/arr_suite_with_dracula.yml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
jellyseerr is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jellyseerr
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jellyseerr
|
||||
dns:
|
||||
- 9.9.9.9
|
||||
- 1.1.1.1
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
image: fallenbagel/jellyseerr:latest
|
||||
networks:
|
||||
media_net:
|
||||
ipv4_address: 172.23.0.11
|
||||
ports:
|
||||
- 5055:5055/tcp
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1027:65536
|
||||
volumes:
|
||||
- /volume1/docker2/jellyseerr:/app/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 5055 | 5055 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker2/jellyseerr` | `/app/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 5055:5055/tcp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jellyseerr
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jellyseerr
|
||||
|
||||
# Update service
|
||||
docker-compose pull jellyseerr
|
||||
docker-compose up -d jellyseerr
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jellyseerr /bin/bash
|
||||
# or
|
||||
docker-compose exec jellyseerr /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jellyseerr
|
||||
- **Docker Hub**: [fallenbagel/jellyseerr:latest](https://hub.docker.com/r/fallenbagel/jellyseerr:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Calypso
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/arr_suite_with_dracula.yml`
|
||||
187
docs/services/individual/jicofo.md
Normal file
187
docs/services/individual/jicofo.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Jicofo
|
||||
|
||||
**🟡 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jicofo |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `jitsi/jicofo:stable` |
|
||||
| **Compose File** | `Atlantis/jitsi/jitsi.yml` |
|
||||
| **Directory** | `Atlantis/jitsi` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
jicofo is a communication platform that enables messaging, collaboration, or social interaction.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/jitsi
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jicofo
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jitsi-jicofo
|
||||
depends_on:
|
||||
- prosody
|
||||
environment:
|
||||
- XMPP_DOMAIN=meet.jitsi
|
||||
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
||||
- JICOFO_AUTH_USER=focus
|
||||
- JICOFO_AUTH_PASSWORD="REDACTED_PASSWORD"
|
||||
- JICOFO_COMPONENT_SECRET=REDACTED_JITSI_SECRET
|
||||
- TZ=America/Los_Angeles
|
||||
image: jitsi/jicofo:stable
|
||||
networks:
|
||||
- meet.jitsi
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/docker/jitsi/jicofo:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `XMPP_DOMAIN` | `meet.jitsi` | Service domain name |
|
||||
| `XMPP_AUTH_DOMAIN` | `auth.meet.jitsi` | Service domain name |
|
||||
| `JICOFO_AUTH_USER` | `focus` | Configuration variable |
|
||||
| `JICOFO_AUTH_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `JICOFO_COMPONENT_SECRET` | `***MASKED***` | Configuration variable |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/jitsi/jicofo` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jicofo
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jicofo
|
||||
|
||||
# Update service
|
||||
docker-compose pull jicofo
|
||||
docker-compose up -d jicofo
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jicofo /bin/bash
|
||||
# or
|
||||
docker-compose exec jicofo /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jicofo
|
||||
- **Docker Hub**: [jitsi/jicofo:stable](https://hub.docker.com/r/jitsi/jicofo:stable)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/jitsi/jitsi.yml`
|
||||
339
docs/services/individual/jitsi-meet.md
Normal file
339
docs/services/individual/jitsi-meet.md
Normal file
@@ -0,0 +1,339 @@
|
||||
# Jitsi Meet - Complete Video Conferencing Platform
|
||||
|
||||
**🟡 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | Jitsi Meet (Complete Stack) |
|
||||
| **Host** | Atlantis (192.168.0.200) |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Images** | `jitsi/web`, `jitsi/prosody`, `jitsi/jicofo`, `jitsi/jvb` |
|
||||
| **Compose File** | `Atlantis/jitsi/jitsi.yml` |
|
||||
| **Directory** | `Atlantis/jitsi` |
|
||||
| **External Domain** | `meet.thevish.io` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Jitsi Meet is a complete open-source video conferencing platform that provides secure, high-quality video calls and meetings. It includes web interface, XMPP server, conference focus, and video bridge components.
|
||||
|
||||
## 🌐 Port Forwarding Configuration
|
||||
|
||||
### **External Access (Router Port Forwards)**
|
||||
| Service | External Port | Internal Port | Protocol | Purpose |
|
||||
|---------|---------------|---------------|----------|---------|
|
||||
| **Jitsi Web** | 4443 | 4443 | TCP | HTTPS web interface |
|
||||
| **STUN Server** | 3478 | 3478 | All | NAT traversal for WebRTC |
|
||||
| **TURN Server** | 5349 | 5349 | All | Relay for restricted networks |
|
||||
| **RTP Media** | 49160-49200 | 49160-49200 | All | Media streams (40 port range) |
|
||||
|
||||
### **Internal Container Ports**
|
||||
| Component | Container Port | Host Port | Purpose |
|
||||
|-----------|----------------|-----------|---------|
|
||||
| **Jitsi Web** | 80, 443 | 5080, 5443 | HTTP/HTTPS interface |
|
||||
| **JVB** | 10000/udp | 10000/udp | Video bridge |
|
||||
| **Prosody** | 5222, 5347 | Internal | XMPP server |
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Port forwarding configured on router
|
||||
- Domain name pointing to external IP
|
||||
- SSL certificates (Let's Encrypt recommended)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/jitsi
|
||||
|
||||
# Start the complete Jitsi Meet stack
|
||||
docker-compose up -d
|
||||
|
||||
# Check all services status
|
||||
docker-compose ps
|
||||
|
||||
# View logs for all components
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### External Access
|
||||
```bash
|
||||
# Primary access URL
|
||||
https://meet.thevish.io
|
||||
|
||||
# Alternative domain access
|
||||
https://meet.vish.gg
|
||||
|
||||
# Direct port access (if needed)
|
||||
https://meet.thevish.io:4443
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Services
|
||||
|
||||
#### **Jitsi Web (Frontend)**
|
||||
```yaml
|
||||
web:
|
||||
image: jitsi/web:stable
|
||||
container_name: jitsi-web
|
||||
ports:
|
||||
- "5080:80" # HTTP (redirects to HTTPS)
|
||||
- "5443:443" # HTTPS web interface
|
||||
environment:
|
||||
- PUBLIC_URL=https://meet.thevish.io
|
||||
- ENABLE_P2P=0
|
||||
- ENABLE_TURN=1
|
||||
- TURN_HOST=turn.thevish.io
|
||||
- TURN_PORT=3478
|
||||
- DISABLE_HTTPS=0
|
||||
```
|
||||
|
||||
#### **Prosody (XMPP Server)**
|
||||
```yaml
|
||||
prosody:
|
||||
image: jitsi/prosody:stable
|
||||
container_name: jitsi-prosody
|
||||
environment:
|
||||
- XMPP_DOMAIN=meet.jitsi
|
||||
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
||||
- XMPP_MUC_DOMAIN=muc.meet.jitsi
|
||||
```
|
||||
|
||||
#### **Jicofo (Conference Focus)**
|
||||
```yaml
|
||||
jicofo:
|
||||
image: jitsi/jicofo:stable
|
||||
container_name: jitsi-jicofo
|
||||
environment:
|
||||
- XMPP_DOMAIN=meet.jitsi
|
||||
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
||||
- JICOFO_AUTH_USER=focus
|
||||
```
|
||||
|
||||
#### **JVB (Video Bridge)**
|
||||
```yaml
|
||||
jvb:
|
||||
image: jitsi/jvb:stable
|
||||
container_name: jitsi-jvb
|
||||
ports:
|
||||
- "10000:10000/udp" # Video bridge
|
||||
environment:
|
||||
- JVB_PORT=10000
|
||||
- JVB_STUN_SERVERS=stun.l.google.com:19302
|
||||
- DOCKER_HOST_ADDRESS=meet.thevish.io
|
||||
```
|
||||
|
||||
### Key Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUBLIC_URL` | `https://meet.thevish.io` | External access URL |
|
||||
| `DOCKER_HOST_ADDRESS` | `meet.thevish.io` | Host address for WebRTC |
|
||||
| `ENABLE_P2P` | `0` | Disable peer-to-peer (force through server) |
|
||||
| `ENABLE_TURN` | `1` | Enable TURN server for NAT traversal |
|
||||
| `TURN_HOST` | `turn.thevish.io` | TURN server hostname |
|
||||
| `TURN_PORT` | `3478` | TURN server port |
|
||||
|
||||
## 🌐 Network Architecture
|
||||
|
||||
### **External Access Flow**
|
||||
```
|
||||
Internet → Router (Port Forward) → Atlantis → Docker Container
|
||||
↓
|
||||
Port 4443 → 192.168.0.200:5443 → jitsi-web:443
|
||||
Port 3478 → 192.168.0.200:3478 → STUN/TURN server
|
||||
Port 5349 → 192.168.0.200:5349 → TURN server
|
||||
Port 49160-49200 → 192.168.0.200:49160-49200 → RTP media
|
||||
```
|
||||
|
||||
### **Internal Container Network**
|
||||
```
|
||||
meet.jitsi (Docker Network)
|
||||
├── jitsi-web (Frontend)
|
||||
├── jitsi-prosody (XMPP Server)
|
||||
├── jitsi-jicofo (Conference Focus)
|
||||
└── jitsi-jvb (Video Bridge)
|
||||
```
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
### **External Exposure Assessment**
|
||||
- **✅ High Security**: HTTPS encryption on port 4443
|
||||
- **✅ Standard Protocols**: STUN/TURN are industry standard
|
||||
- **⚠️ Media Ports**: RTP range 49160-49200 exposed for media
|
||||
- **✅ Authentication**: Meeting rooms can be password protected
|
||||
|
||||
### **Security Recommendations**
|
||||
```bash
|
||||
# 1. Enable meeting passwords
|
||||
- Configure lobby mode for meetings
|
||||
- Require passwords for sensitive meetings
|
||||
- Use waiting rooms for additional control
|
||||
|
||||
# 2. Monitor access logs
|
||||
- Review Nginx/web server logs regularly
|
||||
- Monitor for unusual connection patterns
|
||||
- Set up alerts for failed authentication attempts
|
||||
|
||||
# 3. Keep services updated
|
||||
- Regular updates for all Jitsi components
|
||||
- Monitor security advisories
|
||||
- Implement automated security scanning
|
||||
|
||||
# 4. Network security
|
||||
- Firewall rules for specific IP ranges if needed
|
||||
- Consider VPN access for internal meetings
|
||||
- Implement rate limiting on web interface
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### **Common Issues**
|
||||
|
||||
#### **Can't Access Web Interface**
|
||||
```bash
|
||||
# Check external access
|
||||
curl -I https://meet.thevish.io
|
||||
curl -I https://meet.vish.gg
|
||||
|
||||
# Verify port forwarding
|
||||
nmap -p 4443 meet.thevish.io
|
||||
|
||||
# Check container status
|
||||
docker-compose ps
|
||||
docker-compose logs web
|
||||
```
|
||||
|
||||
#### **Video/Audio Not Working**
|
||||
```bash
|
||||
# Check STUN/TURN servers
|
||||
nmap -p 3478,5349 meet.thevish.io
|
||||
|
||||
# Verify RTP port range
|
||||
nmap -p 49160-49200 meet.thevish.io
|
||||
|
||||
# Test WebRTC connectivity
|
||||
# Use browser developer tools → Network tab
|
||||
# Look for STUN/TURN connection attempts
|
||||
```
|
||||
|
||||
#### **Meeting Connection Issues**
|
||||
```bash
|
||||
# Check JVB (Video Bridge) status
|
||||
docker-compose logs jvb
|
||||
|
||||
# Verify XMPP server
|
||||
docker-compose logs prosody
|
||||
|
||||
# Check conference focus
|
||||
docker-compose logs jicofo
|
||||
|
||||
# Test internal connectivity
|
||||
docker-compose exec web ping prosody
|
||||
```
|
||||
|
||||
### **Performance Optimization**
|
||||
```bash
|
||||
# Monitor resource usage
|
||||
docker stats
|
||||
|
||||
# Check bandwidth usage
|
||||
iftop -i eth0
|
||||
|
||||
# Optimize JVB settings for concurrent users
|
||||
# Edit JVB configuration for higher capacity
|
||||
```
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
### **Recommended Resources**
|
||||
- **Minimum RAM**: 4GB total for all components
|
||||
- **Recommended RAM**: 8GB+ for production use
|
||||
- **CPU**: 4+ cores for multiple concurrent meetings
|
||||
- **Network**: High bandwidth for media streaming
|
||||
- **Storage**: 10GB+ for logs and configuration
|
||||
|
||||
### **Scaling Considerations**
|
||||
- **Small meetings (2-4 people)**: Default configuration sufficient
|
||||
- **Medium meetings (5-15 people)**: Increase JVB memory allocation
|
||||
- **Large meetings (15+ people)**: Consider multiple JVB instances
|
||||
- **Enterprise scale**: Implement Jitsi cluster with load balancing
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
### **Service Health Checks**
|
||||
```bash
|
||||
# Check all components
|
||||
docker-compose ps
|
||||
|
||||
# Test web interface
|
||||
curl -f https://meet.thevish.io/config.js
|
||||
|
||||
# Verify XMPP server
|
||||
docker-compose exec prosody prosodyctl status
|
||||
|
||||
# Check video bridge
|
||||
curl -f http://localhost:8080/colibri/stats
|
||||
```
|
||||
|
||||
### **Monitoring Metrics**
|
||||
- **Active meetings**: Number of concurrent conferences
|
||||
- **Participant count**: Total users across all meetings
|
||||
- **Bandwidth usage**: Network utilization for media streams
|
||||
- **CPU/Memory**: Resource consumption per component
|
||||
- **Connection success rate**: WebRTC connection establishment
|
||||
|
||||
## 🌐 Integration with Homelab
|
||||
|
||||
### **Tailscale Access**
|
||||
```bash
|
||||
# Internal access via Tailscale
|
||||
https://atlantis.tail.vish.gg:5443
|
||||
|
||||
# Secure admin access
|
||||
https://atlantis.tail.vish.gg:5080/admin
|
||||
```
|
||||
|
||||
### **Reverse Proxy Integration**
|
||||
```bash
|
||||
# If using Nginx Proxy Manager or Traefik
|
||||
# Configure reverse proxy for clean URLs
|
||||
# Handle SSL termination at proxy level
|
||||
# Load balance multiple Jitsi instances
|
||||
```
|
||||
|
||||
### **Monitoring Integration**
|
||||
```bash
|
||||
# Prometheus metrics (if enabled)
|
||||
http://atlantis.tail.vish.gg:8080/metrics
|
||||
|
||||
# Grafana dashboard
|
||||
# Import Jitsi Meet dashboard for monitoring
|
||||
# Set up alerts for service failures
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: [Jitsi Meet Handbook](https://jitsi.github.io/handbook/)
|
||||
- **Docker Hub**: [Jitsi Docker Images](https://hub.docker.com/u/jitsi)
|
||||
- **Community**: [Jitsi Community Forum](https://community.jitsi.org/)
|
||||
- **Security Guide**: [Jitsi Security Best Practices](https://jitsi.github.io/handbook/docs/devops-guide/secure)
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
- **Prosody**: XMPP server component
|
||||
- **Jicofo**: Conference focus component
|
||||
- **JVB**: Video bridge component
|
||||
- **Nginx**: Reverse proxy for web interface
|
||||
- **Coturn**: STUN/TURN server (if separate)
|
||||
|
||||
---
|
||||
|
||||
*This documentation covers the complete Jitsi Meet platform including external access configuration and port forwarding requirements.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/jitsi/jitsi.yml`
|
||||
**External Access**: `https://meet.thevish.io`
|
||||
202
docs/services/individual/jvb.md
Normal file
202
docs/services/individual/jvb.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# Jvb
|
||||
|
||||
**🟡 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | jvb |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `jitsi/jvb:stable` |
|
||||
| **Compose File** | `Atlantis/jitsi/jitsi.yml` |
|
||||
| **Directory** | `Atlantis/jitsi` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
jvb is a communication platform that enables messaging, collaboration, or social interaction.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis/jitsi
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f jvb
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: jitsi-jvb
|
||||
depends_on:
|
||||
- prosody
|
||||
environment:
|
||||
- XMPP_SERVER=prosody
|
||||
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
||||
- JVB_AUTH_USER=jvb
|
||||
- JVB_AUTH_PASSWORD="REDACTED_PASSWORD"
|
||||
- JVB_BREWERY_MUC=jvbbrewery
|
||||
- JVB_PORT=10000
|
||||
- JVB_TCP_HARVESTER_DISABLED=true
|
||||
- JVB_STUN_SERVERS=stun.l.google.com:19302
|
||||
- JVB_ENABLE_APIS=rest,colibri
|
||||
- DOCKER_HOST_ADDRESS=meet.thevish.io
|
||||
- TZ=America/Los_Angeles
|
||||
image: jitsi/jvb:stable
|
||||
networks:
|
||||
- meet.jitsi
|
||||
ports:
|
||||
- 10000:10000/udp
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/docker/jitsi/jvb:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `XMPP_SERVER` | `prosody` | Configuration variable |
|
||||
| `XMPP_AUTH_DOMAIN` | `auth.meet.jitsi` | Service domain name |
|
||||
| `JVB_AUTH_USER` | `jvb` | Configuration variable |
|
||||
| `JVB_AUTH_PASSWORD` | `***MASKED***` | Configuration variable |
|
||||
| `JVB_BREWERY_MUC` | `jvbbrewery` | Configuration variable |
|
||||
| `JVB_PORT` | `10000` | Configuration variable |
|
||||
| `JVB_TCP_HARVESTER_DISABLED` | `true` | Configuration variable |
|
||||
| `JVB_STUN_SERVERS` | `stun.l.google.com:19302` | Configuration variable |
|
||||
| `JVB_ENABLE_APIS` | `rest,colibri` | Configuration variable |
|
||||
| `DOCKER_HOST_ADDRESS` | `meet.thevish.io` | Configuration variable |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 10000 | 10000 | UDP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/jitsi/jvb` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 10000:10000/udp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f jvb
|
||||
|
||||
# Restart service
|
||||
docker-compose restart jvb
|
||||
|
||||
# Update service
|
||||
docker-compose pull jvb
|
||||
docker-compose up -d jvb
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec jvb /bin/bash
|
||||
# or
|
||||
docker-compose exec jvb /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for jvb
|
||||
- **Docker Hub**: [jitsi/jvb:stable](https://hub.docker.com/r/jitsi/jvb:stable)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/jitsi/jitsi.yml`
|
||||
372
docs/services/individual/lazylibrarian.md
Normal file
372
docs/services/individual/lazylibrarian.md
Normal file
@@ -0,0 +1,372 @@
|
||||
# LazyLibrarian
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | lazylibrarian |
|
||||
| **Host** | Atlantis (Synology) |
|
||||
| **Category** | Media / Books |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `lscr.io/linuxserver/lazylibrarian:latest` |
|
||||
| **Compose File** | `hosts/synology/atlantis/arr-suite/docker-compose.yml` |
|
||||
| **Directory** | `hosts/synology/atlantis/arr-suite` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
LazyLibrarian is an ebook and audiobook download automation tool, similar to Sonarr/Radarr but for books. It monitors authors you follow, searches indexers for new releases, and automatically downloads them via SABnzbd or torrent clients. This is the replacement for the retired Readarr project.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Download client configured (SABnzbd and/or Deluge)
|
||||
- Indexer access (via Prowlarr or direct)
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd hosts/synology/atlantis/arr-suite
|
||||
|
||||
# Start the service
|
||||
docker-compose -f docker-compose.yml up -d lazylibrarian
|
||||
|
||||
# Check service status
|
||||
docker-compose -f docker-compose.yml ps
|
||||
|
||||
# View logs
|
||||
docker-compose -f docker-compose.yml logs -f lazylibrarian
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
lazylibrarian:
|
||||
image: lscr.io/linuxserver/lazylibrarian:latest
|
||||
container_name: lazylibrarian
|
||||
environment:
|
||||
- PUID=1029
|
||||
- PGID=100
|
||||
- TZ=America/Los_Angeles
|
||||
- UMASK=022
|
||||
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:lazylibrarian|ghcr.io/linuxserver/mods:lazylibrarian-calibre
|
||||
- TP_SCHEME=http
|
||||
- TP_DOMAIN=192.168.0.200:8580
|
||||
- TP_THEME=dracula
|
||||
volumes:
|
||||
- /volume2/metadata/docker2/lazylibrarian:/config
|
||||
- /volume1/data:/data
|
||||
- /volume3/usenet:/sab
|
||||
- /volume2/torrents:/downloads # Deluge download dir
|
||||
- /volume2/metadata/docker2/lazylibrarian-scripts/custom-cont-init.d:/custom-cont-init.d
|
||||
ports:
|
||||
- "5299:5299"
|
||||
networks:
|
||||
media2_net:
|
||||
ipv4_address: 172.24.0.5
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: always
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1029` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `UMASK` | `022` | File permission mask |
|
||||
| `DOCKER_MODS` | `...theme.park:lazylibrarian\|...mods:lazylibrarian-calibre` | Theme.park + Calibre (ebook-convert) |
|
||||
| `TP_SCHEME` | `http` | Theme.park scheme |
|
||||
| `TP_DOMAIN` | `192.168.0.200:8580` | Theme.park host |
|
||||
| `TP_THEME` | `dracula` | Theme selection |
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 5299 | 5299 | TCP | Web UI |
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume2/metadata/docker2/lazylibrarian` | `/config` | bind | Configuration files |
|
||||
| `/volume1/data` | `/data` | bind | Media library root |
|
||||
| `/volume3/usenet` | `/sab` | bind | Download directory |
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
| Interface | URL |
|
||||
|-----------|-----|
|
||||
| Web UI | `http://192.168.0.200:5299` |
|
||||
|
||||
## 🔧 Initial Setup
|
||||
|
||||
### 1. Download Clients
|
||||
|
||||
**SABnzbd Configuration:**
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Host | `192.168.0.200` |
|
||||
| Port | `8080` |
|
||||
| API Key | (from SABnzbd → Config → General) |
|
||||
| Category | `books` |
|
||||
|
||||
**Deluge Configuration (via Gluetun):**
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Host | `172.24.0.20` |
|
||||
| Port | `8112` |
|
||||
| Password | (your deluge password) |
|
||||
|
||||
### 2. Providers (Indexers)
|
||||
|
||||
**Using Prowlarr (Recommended):**
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Host | `172.24.0.6` |
|
||||
| Port | `9696` |
|
||||
| API Key | (from Prowlarr → Settings → General) |
|
||||
|
||||
### 3. Processing Paths
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| eBook Library Folder | `/data/media/ebooks` |
|
||||
| AudioBook Library Folder | `/data/media/audiobooks` |
|
||||
| Download Complete Folder | `/sab/complete` |
|
||||
|
||||
## 📖 Adding Books
|
||||
|
||||
### Via the Web UI
|
||||
1. **Authors → Add Author** → search by name → set to **Active** to track all their books
|
||||
2. **Books** → find the book → click **Wanted** to queue it for download
|
||||
3. LL searches indexers automatically on schedule (every 6h) or trigger manually: **Tools → Search Wanted**
|
||||
|
||||
### API Access
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **URL** | http://192.168.0.200:5299 |
|
||||
| **API Key** | `REDACTED_LL_API_KEY` |
|
||||
| **Config file** | `/volume2/metadata/docker2/lazylibrarian/config.ini` (on Atlantis) |
|
||||
|
||||
Useful read/write CFG shortcuts:
|
||||
```bash
|
||||
# Read a config value
|
||||
curl "http://192.168.0.200:5299/api?apikey=REDACTED_LL_API_KEY&cmd=readCFG&name=<NAME>&group=<Group>"
|
||||
|
||||
# Write a config value
|
||||
curl "http://192.168.0.200:5299/api?apikey=REDACTED_LL_API_KEY&cmd=writeCFG&name=<NAME>&group=<Group>&value=<val>"
|
||||
```
|
||||
|
||||
### Via API
|
||||
```bash
|
||||
LL_API="http://192.168.0.200:5299/api?apikey=REDACTED_LL_API_KEY"
|
||||
|
||||
# 1. Find the book — returns bookid and authorid
|
||||
curl "$LL_API&cmd=findBook&name=Book+Title+Author+Name"
|
||||
|
||||
# 2. Add it to the database
|
||||
curl "$LL_API&cmd=addBook&id=<bookid>&wait=1"
|
||||
|
||||
# 3. Mark as Wanted (type=eBook or type=AudioBook)
|
||||
curl "$LL_API&cmd=queueBook&id=<bookid>&type=eBook"
|
||||
|
||||
# 4. Trigger immediate search (don't wait 6h)
|
||||
curl "$LL_API&cmd=forceBookSearch&type=eBook"
|
||||
```
|
||||
|
||||
### Language filter warning
|
||||
LL may log `Language [Unknown] does not match preference` for some books — this is a **warning only** and does not block the download. The book will still be grabbed.
|
||||
|
||||
### Flow after download
|
||||
SABnzbd downloads → LL post-processor imports to library folder → Audiobookshelf watcher detects → available in ABS app.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured (no-new-privileges)
|
||||
- ✅ Running with specific user/group IDs
|
||||
- ✅ Theme.park integration for consistent UI
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 256MB
|
||||
- **Recommended RAM**: 512MB
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by library size
|
||||
|
||||
### Resource Monitoring
|
||||
```bash
|
||||
docker stats lazylibrarian
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Prowlarr reports "Applications unavailable due to failures" for LazyLibrarian**
|
||||
- **Root cause:** LazyLibrarian's API is disabled by default. Prowlarr requires the API to sync indexers.
|
||||
- **Fix:** In LazyLibrarian → Config → General, enable the API and save. Copy the API key.
|
||||
In Prowlarr → Settings → Apps → LazyLibrarian, ensure the API key matches, then click Test.
|
||||
- **Error seen in Prowlarr logs:** `LazyLibrarianException: LazyLibrarian Error - Code 501: API not enabled`
|
||||
|
||||
**Searches complete instantly with "found 0 books"**
|
||||
- **Root cause:** Newznab/Torznab providers are disabled by default (`ENABLED = False` in source). The
|
||||
config.ini must have `enabled = true` explicitly in each provider section.
|
||||
- **Fix:** Stop the container, add `enabled = true` as the first key under each `[Newznab_N]` and
|
||||
`[Torznab_N]` section in `/config/config.ini`, then restart.
|
||||
```bash
|
||||
docker stop lazylibrarian
|
||||
python3 /tmp/fix_ll_config.py # see script below
|
||||
docker start lazylibrarian
|
||||
```
|
||||
Script (`/tmp/fix_ll_config.py`):
|
||||
```python
|
||||
import re
|
||||
path = "/volume2/metadata/docker2/lazylibrarian/config.ini"
|
||||
with open(path) as f: lines = f.readlines()
|
||||
out = []
|
||||
for i, line in enumerate(lines):
|
||||
out.append(line)
|
||||
if re.match(r"^\[(Newznab|Torznab)_\d+\]\s*$", line):
|
||||
j = i + 1
|
||||
if not any(re.match(r"^enabled\s*=", l, re.I) for l in lines[j:j+10] if not l.startswith("[")):
|
||||
out.append("enabled = true\n")
|
||||
with open(path, "w") as f: f.writelines(out)
|
||||
```
|
||||
|
||||
**SABnzbd download stuck in "Grabbing" forever / Torrent grab fails with `[Errno 2]`**
|
||||
- **Root cause:** Newznab/Torznab provider hosts use the Docker container name (`prowlarr:9696`).
|
||||
SABnzbd runs on the host network and can't resolve it; torrent grabs silently fail when LL can't
|
||||
reach the Prowlarr download URL, leaving it trying to open the result title as a file path.
|
||||
- **Fix:** Stop the container, replace `prowlarr:9696` with `192.168.0.200:9696` in ALL provider
|
||||
`host` entries (Newznab and Torznab), then restart.
|
||||
```bash
|
||||
# Via Portainer API (container stop/start):
|
||||
curl -sk -X POST -H "X-API-Key: <portainer-token>" \
|
||||
"https://192.168.0.200:9443/api/endpoints/2/docker/containers/<id>/stop"
|
||||
ssh atlantis "sed -i 's|http://prowlarr:9696/|http://192.168.0.200:9696/|g' \
|
||||
/volume2/metadata/docker2/lazylibrarian/config.ini"
|
||||
curl -sk -X POST -H "X-API-Key: <portainer-token>" \
|
||||
"https://192.168.0.200:9443/api/endpoints/2/docker/containers/<id>/start" -H "Content-Type: application/json" -d '{}'
|
||||
```
|
||||
|
||||
**SABnzbd not configured / "No NZB download method is enabled"**
|
||||
- **Root cause:** SABnzbd connection not set up in LazyLibrarian.
|
||||
- **Fix:** Use the writeCFG API (or Config → Downloaders → SABnzbd in the UI):
|
||||
```bash
|
||||
LL_API="http://192.168.0.200:5299/api?apikey=<your-key>"
|
||||
curl "$LL_API&cmd=writeCFG&name=SAB_HOST&group=SABnzbd&value=192.168.0.200"
|
||||
curl "$LL_API&cmd=writeCFG&name=SAB_PORT&group=SABnzbd&value=8080"
|
||||
curl "$LL_API&cmd=writeCFG&name=SAB_API&group=SABnzbd&value=<sab-api-key>"
|
||||
curl "$LL_API&cmd=writeCFG&name=SAB_CAT&group=SABnzbd&value=books"
|
||||
curl "$LL_API&cmd=writeCFG&name=NZB_DOWNLOADER_SABNZBD&group=USENET&value=1"
|
||||
```
|
||||
SABnzbd API key: `docker exec sabnzbd grep api_key /config/sabnzbd.ini`
|
||||
|
||||
**eBook library path not set / books import to /config**
|
||||
- **Root cause:** `EBOOK_DIR` defaults to empty, so imported books land in `/config`.
|
||||
- **Fix:** Set the library path:
|
||||
```bash
|
||||
curl "http://192.168.0.200:5299/api?cmd=writeCFG&name=EBOOK_DIR&group=General&value=/data/media/ebooks&apikey=<key>"
|
||||
```
|
||||
Or in UI: Config → Processing → eBook Library Folder → `/data/media/ebooks`
|
||||
|
||||
**AudioBook library path not set / audiobooks import to /config**
|
||||
- **Root cause:** `AUDIO_DIR` defaults to empty, so imported audiobooks land in `/config` instead of the Audiobookshelf-watched directory.
|
||||
- **Fix:** Set the library path:
|
||||
```bash
|
||||
curl "http://192.168.0.200:5299/api?cmd=writeCFG&name=AUDIO_DIR&group=General&value=/data/media/audiobooks&apikey=<key>"
|
||||
```
|
||||
Or in UI: Config → Processing → AudioBook Library Folder → `/data/media/audiobooks`
|
||||
Verify: `curl "http://192.168.0.200:5299/api?apikey=<key>&cmd=readCFG&name=AUDIO_DIR&group=General"`
|
||||
|
||||
**Torrent download fails with `[Errno 2] No such file or directory: '<result title>'`**
|
||||
- **Root cause:** LL's `deluge.py` identifies valid .torrent data by checking for `b'announce'` in the
|
||||
first 40 bytes. Tracker-less torrents (generated from magnet links by clients like go.torrent) start
|
||||
with `d7:comment` instead, causing LL to fall back to treating the result title as a local file path.
|
||||
- **Fix:** A custom-cont-init.d script patches `deluge.py` on startup to also accept bencoded dicts
|
||||
(any data starting with `d`, which all valid .torrent files do). The patch and compose mount are
|
||||
already applied. Script at:
|
||||
`/volume2/metadata/docker2/lazylibrarian-scripts/custom-cont-init.d/99-patch-deluge.sh`
|
||||
|
||||
**SAB_DIRECTORY cannot be set via writeCFG API**
|
||||
- **Root cause:** `writeCFG` returns OK but `SAB_DIRECTORY` is not written to `config.ini` by some LL
|
||||
versions (possible key mismatch). LL won't know where SABnzbd puts completed downloads and won't
|
||||
auto-import them.
|
||||
- **Workaround:** Manually trigger post-processing after a download completes:
|
||||
```bash
|
||||
curl "http://192.168.0.200:5299/api?apikey=REDACTED_LL_API_KEY&cmd=forceProcess&dir=/sab/complete/books"
|
||||
```
|
||||
This tells LL to scan the SABnzbd books category output dir and import any completed files.
|
||||
|
||||
**KEEP_SEEDING setting does not persist**
|
||||
- **Root cause:** `writeCFG` returns OK for `KEEP_SEEDING` but the value is not actually saved.
|
||||
Manually editing `config.ini` also fails — LL reads config into memory at startup and writes it back
|
||||
on shutdown, overwriting manual edits made while the container is running.
|
||||
- **Workaround:** None found. The setting must be changed through the LL web UI
|
||||
(Config → Processing → Keep seeding after import), which writes it to the in-memory config.
|
||||
|
||||
**NZB audiobook downloads deliver ebooks (epub/mobi) instead of audio files (m4b/mp3)**
|
||||
- **Root cause:** Some Prowlarr indexers (especially 1337x) classify audio releases under NZB
|
||||
categories. LL searches both NZB and Torznab for AudioBooks. An indexer may have an epub labeled
|
||||
as an audiobook at a high match percentage, and LL grabs it. The epub lands in the audiobook
|
||||
directory and is ignored by Audiobookshelf.
|
||||
- **Fix:** If an audiobook download is an epub, check `docker logs lazylibrarian` for the grabbed
|
||||
URL, then mark the book as Wanted again and re-search. If the NZB result keeps winning, you may
|
||||
need to add the specific provider to a blocklist or manually grab a torrent via the UI.
|
||||
|
||||
**Downloads not starting**
|
||||
- Verify download client connection in Config → Downloaders
|
||||
- Check API keys are correct
|
||||
- Ensure indexers are configured and working
|
||||
|
||||
**Books not importing**
|
||||
- Check file permissions (PUID/PGID)
|
||||
- Verify library paths are correct
|
||||
- Manually trigger PostProcessor: `curl "$LL_API&cmd=forceProcess&dir=/sab/complete/books"`
|
||||
|
||||
**Metadata not found**
|
||||
- Try different metadata providers (Google Books, OpenLibrary, etc.)
|
||||
- Search by ISBN if available
|
||||
- Manual metadata entry
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# View real-time logs
|
||||
docker logs -f lazylibrarian
|
||||
|
||||
# Restart service
|
||||
docker restart lazylibrarian
|
||||
|
||||
# Update service
|
||||
docker pull lscr.io/linuxserver/lazylibrarian:latest
|
||||
docker restart lazylibrarian
|
||||
|
||||
# Access service shell
|
||||
docker exec -it lazylibrarian /bin/bash
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: [LazyLibrarian Wiki](https://lazylibrarian.gitlab.io/)
|
||||
- **GitLab**: [LazyLibrarian/LazyLibrarian](https://gitlab.com/LazyLibrarian/LazyLibrarian)
|
||||
- **LinuxServer.io**: [Docker Image Docs](https://docs.linuxserver.io/images/docker-lazylibrarian)
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD LazyLibrarian:
|
||||
- Audiobookshelf (playback/serving)
|
||||
- Calibre-Web (ebook management)
|
||||
- SABnzbd (usenet downloads)
|
||||
- Deluge (torrent downloads)
|
||||
- Prowlarr (indexer management)
|
||||
|
||||
---
|
||||
|
||||
*Last Updated*: 2026-03-02 (Calibre mod, torrent patch, troubleshooting updates)
|
||||
*Configuration Source*: `hosts/synology/atlantis/arr-suite/docker-compose.yml`
|
||||
171
docs/services/individual/libreddit.md
Normal file
171
docs/services/individual/libreddit.md
Normal file
@@ -0,0 +1,171 @@
|
||||
# Libreddit
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | libreddit |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `libreddit/libreddit` |
|
||||
| **Compose File** | `homelab_vm/libreddit.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
libreddit is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f libreddit
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: libreddit
|
||||
image: libreddit/libreddit
|
||||
ports:
|
||||
- 9000:8080
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9000 | 8080 | TCP | Alternative HTTP port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
No volumes mounted.
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://homelab_vm:9000`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f libreddit
|
||||
|
||||
# Restart service
|
||||
docker-compose restart libreddit
|
||||
|
||||
# Update service
|
||||
docker-compose pull libreddit
|
||||
docker-compose up -d libreddit
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec libreddit /bin/bash
|
||||
# or
|
||||
docker-compose exec libreddit /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for libreddit
|
||||
- **Docker Hub**: [libreddit/libreddit](https://hub.docker.com/r/libreddit/libreddit)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/libreddit.yaml`
|
||||
141
docs/services/individual/lidarr.md
Normal file
141
docs/services/individual/lidarr.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# Lidarr
|
||||
|
||||
Music collection manager with Deezer integration via arr-scripts.
|
||||
|
||||
## Service Info
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Host** | Atlantis (192.168.0.200) |
|
||||
| **URL** | http://192.168.0.200:8686 |
|
||||
| **Compose file** | `hosts/synology/atlantis/arr-suite/docker-compose.yml` |
|
||||
| **Config volume** | `/volume2/metadata/docker2/lidarr` |
|
||||
| **Portainer stack** | arr-stack (stack ID 560, env 2) |
|
||||
| **API key** | `2084f02ddc5b42d5afe7989a2cf248ba` |
|
||||
|
||||
## arr-scripts / Deezer Integration
|
||||
|
||||
Lidarr uses [arr-scripts by RandomNinjaAtk](https://github.com/RandomNinjaAtk/arr-scripts) to download music from Deezer via deemix. This is the primary download source since usenet indexers have zero coverage for non-English music (Italian, Japanese, etc.).
|
||||
|
||||
### How it works
|
||||
|
||||
1. arr-scripts runs as s6 services inside the Lidarr container
|
||||
2. The `Audio` service polls Lidarr's missing albums queue every cycle
|
||||
3. For each missing album, it searches Deezer using fuzzy title matching (Damerau-Levenshtein distance)
|
||||
4. On match, it calls `deemix` to download at 320kbps MP3 (Deezer Premium)
|
||||
5. Files are placed in `/config/extended/import/` and Lidarr is notified via API to import them
|
||||
|
||||
### File locations on Atlantis
|
||||
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `/volume2/metadata/docker2/lidarr/extended.conf` | arr-scripts config — **not in git** (contains ARL token) |
|
||||
| `/volume2/metadata/docker2/lidarr-scripts/custom-cont-init.d/scripts_init.bash` | Init script that runs on every container start |
|
||||
| `/volume2/metadata/docker2/lidarr-scripts/custom-services.d/` | s6 service definitions (populated automatically on first start) |
|
||||
|
||||
### extended.conf key settings
|
||||
|
||||
```bash
|
||||
enableAutoConfig="true" # Required sentinel — all services check this first
|
||||
enableAudio="true" # Set to "false" to pause downloads
|
||||
dlClientSource="deezer"
|
||||
audioFormat="native"
|
||||
audioBitrate="high" # "high" = FLAC (maxBitrate=3 in deemix_config.json)
|
||||
arlToken="..." # Deezer session cookie — expires ~3 months, not in git
|
||||
enableBeetsTagging="true"
|
||||
beetsMatchPercentage="70" # Lowered from 90 — stricter caused too many import failures
|
||||
matchDistance="6" # Raised from 3 — more tolerant fuzzy album matching
|
||||
enableReplaygainTags="true"
|
||||
```
|
||||
|
||||
> **ARL token**: Get from deezer.com → DevTools → Application → Cookies → `arl`. Requires Deezer Premium.
|
||||
|
||||
### Pausing/resuming downloads
|
||||
|
||||
**Quick (via Portainer console exec into `lidarr`):**
|
||||
```sh
|
||||
s6-svc -d /run/service/custom-svc-Audio # pause
|
||||
s6-svc -u /run/service/custom-svc-Audio # resume
|
||||
```
|
||||
|
||||
**Persistent (survives restarts):**
|
||||
Edit `/volume2/metadata/docker2/lidarr/extended.conf`, set `enableAudio="false"`, restart container.
|
||||
|
||||
### scripts_init.bash — why it exists
|
||||
|
||||
`setup.bash` (downloaded from GitHub) silently fails to install several Python packages on Alpine due to setuptools build errors. `scripts_init.bash` re-installs them explicitly after `setup.bash` runs:
|
||||
|
||||
- `yq` — Python yq whose `xq` binary replaces Alpine's `xq` (v1.x outputs XML passthrough instead of JSON)
|
||||
- `pyxdameraulevenshtein` — Damerau-Levenshtein distance for fuzzy album title matching
|
||||
- `deemix` — actual Deezer downloader
|
||||
- `colorama`, `pylast`, `mutagen`, `langdetect`, `apprise`, `r128gain` — supporting packages
|
||||
|
||||
Without these, downloads fail silently or the scripts get stuck in a "not ready" loop forever.
|
||||
|
||||
## Compose volumes
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- /volume2/metadata/docker2/lidarr:/config
|
||||
- /volume1/data:/data
|
||||
- /volume3/usenet:/sab
|
||||
- /volume2/metadata/docker2/lidarr-scripts/custom-services.d:/custom-services.d
|
||||
- /volume2/metadata/docker2/lidarr-scripts/custom-cont-init.d:/custom-cont-init.d
|
||||
```
|
||||
|
||||
## Indexers
|
||||
|
||||
Usenet indexers (NZBgeek, NzbPlanet, etc.) have near-zero coverage for non-English music. Deezer via arr-scripts is the primary source. Usenet indexers still handle English/mainstream releases when they appear.
|
||||
|
||||
## Download Clients
|
||||
|
||||
| Client | Type | Purpose |
|
||||
|--------|------|---------|
|
||||
| **Arr-Extended** | Usenet Blackhole | arr-scripts deemix integration — primary source |
|
||||
| **SABnzbd** | Usenet | Mainstream/English releases from NZB indexers |
|
||||
|
||||
SABnzbd is at `192.168.0.200:8080`. Remote path mapping: `/data/complete/` → `/sab/complete/`.
|
||||
|
||||
## Quality Profile
|
||||
|
||||
All artists use the **"Any"** profile with:
|
||||
- `upgradeAllowed: true` — will upgrade MP3 → FLAC if found
|
||||
- `cutoff: 1005` (Lossless group) — stops upgrading once FLAC/ALAC/APE is obtained
|
||||
- Deemix downloads FLAC by default (`maxBitrate=3`) so existing lossless files are **not overwritten**
|
||||
|
||||
## Import Behaviour & Known Issues
|
||||
|
||||
### Auto-import failures
|
||||
Lidarr's internal match threshold is **80%**. Releases that score below this are marked `importFailed` and require manual import. Common causes:
|
||||
|
||||
| Cause | Example | Action |
|
||||
|-------|---------|--------|
|
||||
| Bootleg/unofficial release not in MusicBrainz | Drake-No More Thank Yous-Bootleg | Manual import |
|
||||
| Compilation with wrong artist match | Doris Day And Peggy Lee 2CD | Manual import |
|
||||
| Album has fewer tracks than existing release | 311 Grassroots (correct — skip) | Already have better |
|
||||
| Not an upgrade for existing files | Four Tops MP3 (correct — skip) | Already have lossless |
|
||||
| Archive not extracted | Lloyd Banks zip | Extract manually in SABnzbd |
|
||||
|
||||
### Fingerprinting
|
||||
Set to `allFiles` (2026-03-18) — Lidarr acoustically fingerprints every track via AcoustID for better MusicBrainz matching. Previously only fingerprinted new files.
|
||||
|
||||
### Queue stuck with `downloadClientUnavailable`
|
||||
Happens when SABnzbd restarts. Clear via:
|
||||
```bash
|
||||
# Via API
|
||||
curl -s -X DELETE "http://192.168.0.200:8686/api/v1/queue/<id>?removeFromClient=true&blocklist=false" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY"
|
||||
```
|
||||
Or bulk clear all stuck items — see `docs/troubleshooting/common-issues.md`.
|
||||
|
||||
### Force rescan/reimport
|
||||
```bash
|
||||
curl -s -X POST "http://192.168.0.200:8686/api/v1/command" \
|
||||
-H "X-Api-Key: "REDACTED_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name": "DownloadedAlbumsScan"}'
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
See [arr-scripts troubleshooting](../../troubleshooting/common-issues.md#arr-scripts-lidarr-deezer) for the full list of known issues and fixes.
|
||||
179
docs/services/individual/linuxgsm-l4d2.md
Normal file
179
docs/services/individual/linuxgsm-l4d2.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Linuxgsm L4D2
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | linuxgsm-l4d2 |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `gameservermanagers/gameserver:l4d2` |
|
||||
| **Compose File** | `homelab_vm/l4d2_docker.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
linuxgsm-l4d2 is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f linuxgsm-l4d2
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: l4d2server
|
||||
image: gameservermanagers/gameserver:l4d2
|
||||
ports:
|
||||
- 27015:27015/tcp
|
||||
- 27015:27015/udp
|
||||
- 27020:27020/udp
|
||||
- 27005:27005/udp
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/homelab/docker/l4d2:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 27015 | 27015 | TCP | Service port |
|
||||
| 27015 | 27015 | UDP | Service port |
|
||||
| 27020 | 27020 | UDP | Service port |
|
||||
| 27005 | 27005 | UDP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/homelab/docker/l4d2` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 27015:27015/tcp, 27015:27015/udp, 27020:27020/udp, 27005:27005/udp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f linuxgsm-l4d2
|
||||
|
||||
# Restart service
|
||||
docker-compose restart linuxgsm-l4d2
|
||||
|
||||
# Update service
|
||||
docker-compose pull linuxgsm-l4d2
|
||||
docker-compose up -d linuxgsm-l4d2
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec linuxgsm-l4d2 /bin/bash
|
||||
# or
|
||||
docker-compose exec linuxgsm-l4d2 /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for linuxgsm-l4d2
|
||||
- **Docker Hub**: [gameservermanagers/gameserver:l4d2](https://hub.docker.com/r/gameservermanagers/gameserver:l4d2)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/l4d2_docker.yaml`
|
||||
169
docs/services/individual/linuxgsm-pmc-bind.md
Normal file
169
docs/services/individual/linuxgsm-pmc-bind.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# Linuxgsm Pmc Bind
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | linuxgsm-pmc-bind |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `gameservermanagers/gameserver:pmc` |
|
||||
| **Compose File** | `homelab_vm/paperminecraft.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
linuxgsm-pmc-bind is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f linuxgsm-pmc-bind
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: pmcserver
|
||||
image: gameservermanagers/gameserver:pmc
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/homelab/docker/pmc:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/homelab/docker/pmc` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f linuxgsm-pmc-bind
|
||||
|
||||
# Restart service
|
||||
docker-compose restart linuxgsm-pmc-bind
|
||||
|
||||
# Update service
|
||||
docker-compose pull linuxgsm-pmc-bind
|
||||
docker-compose up -d linuxgsm-pmc-bind
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec linuxgsm-pmc-bind /bin/bash
|
||||
# or
|
||||
docker-compose exec linuxgsm-pmc-bind /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for linuxgsm-pmc-bind
|
||||
- **Docker Hub**: [gameservermanagers/gameserver:pmc](https://hub.docker.com/r/gameservermanagers/gameserver:pmc)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/paperminecraft.yaml`
|
||||
197
docs/services/individual/linuxserver-prowlarr.md
Normal file
197
docs/services/individual/linuxserver-prowlarr.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# Linuxserver Prowlarr
|
||||
|
||||
**🟢 Media Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | linuxserver-prowlarr |
|
||||
| **Host** | Calypso |
|
||||
| **Category** | Media |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `linuxserver/prowlarr:latest` |
|
||||
| **Compose File** | `Calypso/arr-suite-wip.yaml` |
|
||||
| **Directory** | `Calypso` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
linuxserver-prowlarr is a media management and streaming service that helps organize and serve your digital media content.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Calypso)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Calypso
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f linuxserver-prowlarr
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: prowlarr
|
||||
environment:
|
||||
- PUID=1027
|
||||
- PGID=65536
|
||||
- TZ=America/Los_Angeles
|
||||
- UMASK=022
|
||||
image: linuxserver/prowlarr:latest
|
||||
network_mode: synobridge
|
||||
ports:
|
||||
- 9696:9696/tcp
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker2/prowlarr:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1027` | User ID for file permissions |
|
||||
| `PGID` | `65536` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `UMASK` | `022` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 9696 | 9696 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker2/prowlarr` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 9696:9696/tcp
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
**Media not showing**
|
||||
- Check media file permissions
|
||||
- Verify volume mounts are correct
|
||||
- Scan media library manually
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f linuxserver-prowlarr
|
||||
|
||||
# Restart service
|
||||
docker-compose restart linuxserver-prowlarr
|
||||
|
||||
# Update service
|
||||
docker-compose pull linuxserver-prowlarr
|
||||
docker-compose up -d linuxserver-prowlarr
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec linuxserver-prowlarr /bin/bash
|
||||
# or
|
||||
docker-compose exec linuxserver-prowlarr /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for linuxserver-prowlarr
|
||||
- **Docker Hub**: [linuxserver/prowlarr:latest](https://hub.docker.com/r/linuxserver/prowlarr:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Services REDACTED_APP_PASSWORD linuxserver-prowlarr:
|
||||
- Plex
|
||||
- Jellyfin
|
||||
- Radarr
|
||||
- Sonarr
|
||||
- Bazarr
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Calypso/arr-suite-wip.yaml`
|
||||
189
docs/services/individual/mastodon-db.md
Normal file
189
docs/services/individual/mastodon-db.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Mastodon Db
|
||||
|
||||
**🔴 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | mastodon-db |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🔴 |
|
||||
| **Docker Image** | `postgres` |
|
||||
| **Compose File** | `Atlantis/mastodon.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Mastodon is a free and open-source self-hosted social networking service.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f mastodon-db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Mastodon-DB
|
||||
environment:
|
||||
POSTGRES_DB: mastodon
|
||||
POSTGRES_PASSWORD: "REDACTED_PASSWORD"
|
||||
POSTGRES_USER: mastodonuser
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
retries: 10
|
||||
test:
|
||||
- CMD
|
||||
- pg_isready
|
||||
- -q
|
||||
- -d
|
||||
- mastodon
|
||||
- -U
|
||||
- mastodonuser
|
||||
timeout: 45s
|
||||
hostname: mastodon-db
|
||||
image: postgres
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
volumes:
|
||||
- /volume1/docker/mastodon/db:/var/lib/postgresql/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `POSTGRES_DB` | `mastodon` | Configuration variable |
|
||||
| `POSTGRES_USER` | `mastodonuser` | Configuration variable |
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/mastodon/db` | `/var/lib/postgresql/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD pg_isready -q -d mastodon -U mastodonuser`
|
||||
**Check Interval**: 10s
|
||||
**Timeout**: 45s
|
||||
**Retries**: 10
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f mastodon-db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart mastodon-db
|
||||
|
||||
# Update service
|
||||
docker-compose pull mastodon-db
|
||||
docker-compose up -d mastodon-db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec mastodon-db /bin/bash
|
||||
# or
|
||||
docker-compose exec mastodon-db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for mastodon-db
|
||||
- **Docker Hub**: [Official mastodon-db](https://hub.docker.com/_/postgres)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/mastodon.yml`
|
||||
174
docs/services/individual/mastodon-redis.md
Normal file
174
docs/services/individual/mastodon-redis.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# Mastodon Redis
|
||||
|
||||
**🔴 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | mastodon-redis |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🔴 |
|
||||
| **Docker Image** | `redis` |
|
||||
| **Compose File** | `Atlantis/mastodon.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Mastodon is a free and open-source self-hosted social networking service.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f mastodon-redis
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Mastodon-REDIS
|
||||
environment:
|
||||
- TZ=America/Los_Angeles
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- redis-cli ping || exit 1
|
||||
hostname: mastodon-redis
|
||||
image: redis
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1026:100
|
||||
volumes:
|
||||
- /volume1/docker/mastodon/redis:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/mastodon/redis` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD-SHELL redis-cli ping || exit 1`
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f mastodon-redis
|
||||
|
||||
# Restart service
|
||||
docker-compose restart mastodon-redis
|
||||
|
||||
# Update service
|
||||
docker-compose pull mastodon-redis
|
||||
docker-compose up -d mastodon-redis
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec mastodon-redis /bin/bash
|
||||
# or
|
||||
docker-compose exec mastodon-redis /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for mastodon-redis
|
||||
- **Docker Hub**: [Official mastodon-redis](https://hub.docker.com/_/redis)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/mastodon.yml`
|
||||
230
docs/services/individual/mastodon.md
Normal file
230
docs/services/individual/mastodon.md
Normal file
@@ -0,0 +1,230 @@
|
||||
# Mastodon
|
||||
|
||||
**🔴 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | mastodon |
|
||||
| **Host** | Atlantis |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🔴 |
|
||||
| **Docker Image** | `lscr.io/linuxserver/mastodon:latest` |
|
||||
| **Compose File** | `Atlantis/mastodon.yml` |
|
||||
| **Directory** | `Atlantis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Mastodon is a free and open-source self-hosted social networking service.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Atlantis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Atlantis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f mastodon
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Mastodon
|
||||
depends_on:
|
||||
mastodon-db:
|
||||
condition: service_started
|
||||
mastodon-redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=America/Los_Angeles
|
||||
- DEFAULT_LOCALE=en
|
||||
- LOCAL_DOMAIN=mastodon.vish.gg
|
||||
- WEB_DOMAIN=mastodon.vish.gg
|
||||
- REDIS_HOST=mastodon-redis
|
||||
- REDIS_PORT=6379
|
||||
- DB_HOST=mastodon-db
|
||||
- DB_USER=mastodonuser
|
||||
- DB_NAME=mastodon
|
||||
- DB_PASS="REDACTED_PASSWORD"
|
||||
- DB_PORT=5432
|
||||
- ES_ENABLED=false
|
||||
- ES_HOST=es
|
||||
- ES_PORT=9200
|
||||
- ES_USER=elastic
|
||||
- ES_PASS="REDACTED_PASSWORD"
|
||||
- SECRET_KEY_BASE=REDACTED_SECRET_KEY_BASE
|
||||
- OTP_SECRET=REDACTED_OTP_SECRET
|
||||
- S3_ENABLED=false
|
||||
hostname: mastodon
|
||||
image: lscr.io/linuxserver/mastodon:latest
|
||||
ports:
|
||||
- 8562:443
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /volume1/docker/mastodon/config:/config
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `PUID` | `1026` | User ID for file permissions |
|
||||
| `PGID` | `100` | Group ID for file permissions |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `DEFAULT_LOCALE` | `en` | Configuration variable |
|
||||
| `LOCAL_DOMAIN` | `mastodon.vish.gg` | Service domain name |
|
||||
| `WEB_DOMAIN` | `mastodon.vish.gg` | Service domain name |
|
||||
| `REDIS_HOST` | `mastodon-redis` | Configuration variable |
|
||||
| `REDIS_PORT` | `6379` | Configuration variable |
|
||||
| `DB_HOST` | `mastodon-db` | Configuration variable |
|
||||
| `DB_USER` | `mastodonuser` | Configuration variable |
|
||||
| `DB_NAME` | `mastodon` | Configuration variable |
|
||||
| `DB_PASS` | `mastodonpw` | Configuration variable |
|
||||
| `DB_PORT` | `5432` | Configuration variable |
|
||||
| `ES_ENABLED` | `false` | Configuration variable |
|
||||
| `ES_HOST` | `es` | Configuration variable |
|
||||
| `ES_PORT` | `9200` | Configuration variable |
|
||||
| `ES_USER` | `elastic` | Configuration variable |
|
||||
| `ES_PASS` | `elastic` | Configuration variable |
|
||||
| `SECRET_KEY_BASE` | `***MASKED***` | Application secret key |
|
||||
| `OTP_SECRET` | `***MASKED***` | Configuration variable |
|
||||
| `S3_ENABLED` | `false` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8562 | 443 | TCP | HTTPS web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/volume1/docker/mastodon/config` | `/config` | bind | Configuration files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://Atlantis:8562`
|
||||
|
||||
### Default Credentials
|
||||
Create admin account via command line
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f mastodon
|
||||
|
||||
# Restart service
|
||||
docker-compose restart mastodon
|
||||
|
||||
# Update service
|
||||
docker-compose pull mastodon
|
||||
docker-compose up -d mastodon
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec mastodon /bin/bash
|
||||
# or
|
||||
docker-compose exec mastodon /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for mastodon
|
||||
- **Docker Hub**: [lscr.io/linuxserver/mastodon:latest](https://hub.docker.com/r/lscr.io/linuxserver/mastodon:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on Atlantis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Atlantis/mastodon.yml`
|
||||
183
docs/services/individual/materialious.md
Normal file
183
docs/services/individual/materialious.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# Materialious
|
||||
|
||||
**🟡 Networking Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | materialious |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Networking |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `nginx:latest` |
|
||||
| **Compose File** | `concord_nuc/invidious/invidious.yaml` |
|
||||
| **Directory** | `concord_nuc/invidious` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
materialious is a networking service that manages network traffic, routing, or connectivity.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc/invidious
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f materialious
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: materialious
|
||||
depends_on:
|
||||
- invidious
|
||||
image: nginx:latest
|
||||
logging:
|
||||
options:
|
||||
max-file: '4'
|
||||
max-size: 1G
|
||||
ports:
|
||||
- 3001:80
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/vish/invidious/Materialious/materialious/build:/usr/share/nginx/html:ro
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 3001 | 80 | TCP | HTTP web interface |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/vish/invidious/Materialious/materialious/build` | `/usr/share/nginx/html` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
### Web Interface
|
||||
- **HTTP**: `http://concord_nuc:3001`
|
||||
|
||||
### Default Credentials
|
||||
Refer to service documentation for default credentials
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f materialious
|
||||
|
||||
# Restart service
|
||||
docker-compose restart materialious
|
||||
|
||||
# Update service
|
||||
docker-compose pull materialious
|
||||
docker-compose up -d materialious
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec materialious /bin/bash
|
||||
# or
|
||||
docker-compose exec materialious /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for materialious
|
||||
- **Docker Hub**: [Official materialious](https://hub.docker.com/_/nginx:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the networking category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/invidious/invidious.yaml`
|
||||
202
docs/services/individual/matrix-conduit.md
Normal file
202
docs/services/individual/matrix-conduit.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# Matrix Conduit
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | matrix-conduit |
|
||||
| **Host** | anubis |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `matrixconduit/matrix-conduit:latest` |
|
||||
| **Compose File** | `anubis/conduit.yml` |
|
||||
| **Directory** | `anubis` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
matrix-conduit is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (anubis)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd anubis
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f matrix-conduit
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: Matrix-Conduit
|
||||
environment:
|
||||
- CONDUIT_SERVER_NAME=vishtestingserver
|
||||
- CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit/
|
||||
- CONDUIT_DATABASE_BACKEND=rocksdb
|
||||
- CONDUIT_PORT=6167
|
||||
- CONDUIT_MAX_REQUEST_SIZE=20000000
|
||||
- CONDUIT_ALLOW_REGISTRATION=true
|
||||
- CONDUIT_ALLOW_FEDERATION=true
|
||||
- CONDUIT_TRUSTED_SERVERS=["matrix.org"]
|
||||
- CONDUIT_MAX_CONCURRENT_REQUESTS=250
|
||||
- CONDUIT_ADDRESS=0.0.0.0
|
||||
- CONDUIT_CONFIG=''
|
||||
hostname: matrix-conduit
|
||||
image: matrixconduit/matrix-conduit:latest
|
||||
ports:
|
||||
- 8455:6167
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 1000:1000
|
||||
volumes:
|
||||
- /home/vish/docker/matrix-conduit/:/var/lib/matrix-conduit/
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `CONDUIT_SERVER_NAME` | `vishtestingserver` | Configuration variable |
|
||||
| `CONDUIT_DATABASE_PATH` | `/var/lib/matrix-conduit/` | Configuration variable |
|
||||
| `CONDUIT_DATABASE_BACKEND` | `rocksdb` | Configuration variable |
|
||||
| `CONDUIT_PORT` | `6167` | Configuration variable |
|
||||
| `CONDUIT_MAX_REQUEST_SIZE` | `20000000` | Configuration variable |
|
||||
| `CONDUIT_ALLOW_REGISTRATION` | `true` | Configuration variable |
|
||||
| `CONDUIT_ALLOW_FEDERATION` | `true` | Configuration variable |
|
||||
| `CONDUIT_TRUSTED_SERVERS` | `["matrix.org"]` | Configuration variable |
|
||||
| `CONDUIT_MAX_CONCURRENT_REQUESTS` | `250` | Configuration variable |
|
||||
| `CONDUIT_ADDRESS` | `0.0.0.0` | Configuration variable |
|
||||
| `CONDUIT_CONFIG` | `''` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8455 | 6167 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/vish/docker/matrix-conduit/` | `/var/lib/matrix-conduit/` | bind | Service data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8455:6167
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f matrix-conduit
|
||||
|
||||
# Restart service
|
||||
docker-compose restart matrix-conduit
|
||||
|
||||
# Update service
|
||||
docker-compose pull matrix-conduit
|
||||
docker-compose up -d matrix-conduit
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec matrix-conduit /bin/bash
|
||||
# or
|
||||
docker-compose exec matrix-conduit /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for matrix-conduit
|
||||
- **Docker Hub**: [matrixconduit/matrix-conduit:latest](https://hub.docker.com/r/matrixconduit/matrix-conduit:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on anubis
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `anubis/conduit.yml`
|
||||
162
docs/services/individual/matrixrtc-livekit.md
Normal file
162
docs/services/individual/matrixrtc-livekit.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# MatrixRTC / LiveKit — Element X Calls
|
||||
|
||||
**Last updated:** 2026-03-19
|
||||
|
||||
MatrixRTC enables voice/video calls in Element X using a LiveKit SFU backend. Both homeservers (`mx.vish.gg` and `matrix.thevish.io`) share the same LiveKit SFU on `matrix-ubuntu`.
|
||||
|
||||
---
|
||||
|
||||
## Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Host** | matrix-ubuntu (`192.168.0.154`) |
|
||||
| **Matrix homeservers** | `mx.vish.gg` (synapse-mx.service) and `matrix.thevish.io` (synapse.service) — both on Synapse 1.148.0 |
|
||||
| **Compose file** | `hosts/vms/matrix-ubuntu/livekit.yml` (deployed manually at `/opt/livekit/`) |
|
||||
| **LiveKit version** | 1.9.12 |
|
||||
| **JWT service** | `ghcr.io/element-hq/lk-jwt-service:latest-ci` |
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Element X ──→ mx.vish.gg (.well-known) ──→ livekit.mx.vish.gg/livekit/jwt (JWT service)
|
||||
──→ matrix.thevish.io (.well-known) ──→ livekit.mx.vish.gg/livekit/sfu (LiveKit SFU)
|
||||
livekit.mx.vish.gg/ (LiveKit WS)
|
||||
```
|
||||
|
||||
Both homeservers share the same LiveKit backend.
|
||||
|
||||
- **NPM** on Calypso proxies `livekit.mx.vish.gg` → matrix-ubuntu
|
||||
- `/livekit/jwt/` → JWT service port 8089 (container 8080)
|
||||
- `/livekit/sfu/` → LiveKit SFU port 7880
|
||||
- `/` → LiveKit SFU port 7880 (WebSocket for direct connections)
|
||||
- **DNS**: `livekit.mx.vish.gg` A record unproxied → `184.23.52.14` (home WAN)
|
||||
- **TLS**: Let's Encrypt cert issued via Cloudflare DNS challenge on matrix-ubuntu, copied to NPM as `npm-7`
|
||||
|
||||
---
|
||||
|
||||
## Endpoints
|
||||
|
||||
| Endpoint | URL | Purpose |
|
||||
|----------|-----|---------|
|
||||
| JWT service healthz | `https://livekit.mx.vish.gg/livekit/jwt/healthz` | Health check |
|
||||
| JWT service SFU get | `https://livekit.mx.vish.gg/livekit/jwt/sfu/get` | Token exchange |
|
||||
| LiveKit SFU WS | `wss://livekit.mx.vish.gg/livekit/sfu/` | WebSocket signalling |
|
||||
| LiveKit HTTP | `https://livekit.mx.vish.gg/` | SFU API |
|
||||
| .well-known | `https://mx.vish.gg/.well-known/matrix/client` | RTC foci advertisement |
|
||||
|
||||
---
|
||||
|
||||
## Configuration Files on matrix-ubuntu
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `/opt/livekit/docker-compose.yml` | LiveKit + JWT service deployment |
|
||||
| `/opt/livekit/livekit.yaml` | LiveKit SFU config (keys, RTC ports, external IP) |
|
||||
| `/opt/synapse-mx/homeserver.yaml` | Synapse config (MSCs, rate limits) |
|
||||
| `/etc/nginx/sites-available/mx-vish-gg` | nginx serving `.well-known` and Element static files |
|
||||
| `/etc/letsencrypt/live/livekit.mx.vish.gg/` | TLS cert (auto-renews, copies to NPM via deploy hook) |
|
||||
|
||||
---
|
||||
|
||||
## Synapse homeserver.yaml additions
|
||||
|
||||
```yaml
|
||||
# MatrixRTC / Element Call support
|
||||
experimental_features:
|
||||
msc3266_enabled: true # Room Summary API (knocking over federation)
|
||||
msc4222_enabled: true # state_after in sync v2
|
||||
msc4140_enabled: true # Delayed events (call participation signalling)
|
||||
|
||||
max_event_delay_duration: 24h
|
||||
|
||||
rc_message:
|
||||
per_second: 0.5
|
||||
burst_count: 30
|
||||
|
||||
rc_delayed_event_mgmt:
|
||||
per_second: 1
|
||||
burst_count: 20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## .well-known/matrix/client
|
||||
|
||||
Served by nginx at `https://mx.vish.gg/.well-known/matrix/client`:
|
||||
|
||||
```json
|
||||
{
|
||||
"m.homeserver": {"base_url": "https://mx.vish.gg"},
|
||||
"org.matrix.msc4143.rtc_foci": [
|
||||
{
|
||||
"type": "livekit",
|
||||
"livekit_service_url": "https://livekit.mx.vish.gg/livekit/jwt"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## LiveKit SFU config (/opt/livekit/livekit.yaml)
|
||||
|
||||
Key settings:
|
||||
- `use_external_ip: true` — auto-detects WAN IP `184.23.52.14`
|
||||
- `use_ice_lite: true` — optimised for server-side NAT traversal
|
||||
- `room.auto_create: false` — only lk-jwt-service creates rooms (security)
|
||||
- RTC ports: 7880 TCP (API/WS), 7881 TCP (RTC), 50000-60000 UDP (media)
|
||||
- **Note:** UDP 50000-60000 port range is NOT currently forwarded on the router — TURN relay is used instead via coturn at `turn:mx.vish.gg:3479`
|
||||
|
||||
---
|
||||
|
||||
## TLS Certificate Renewal
|
||||
|
||||
Cert is issued on matrix-ubuntu via certbot + Cloudflare DNS plugin. A deploy hook copies it to NPM on Calypso after renewal:
|
||||
|
||||
```
|
||||
/etc/letsencrypt/renewal-hooks/deploy/copy-to-npm.sh
|
||||
```
|
||||
|
||||
If the hook fails, manually copy:
|
||||
```bash
|
||||
ssh matrix-ubuntu
|
||||
sudo cp /etc/letsencrypt/live/livekit.mx.vish.gg/fullchain.pem \
|
||||
/tmp/lk.crt
|
||||
sudo cp /etc/letsencrypt/live/livekit.mx.vish.gg/privkey.pem \
|
||||
/tmp/lk.key
|
||||
scp -P 62000 /tmp/lk.crt Vish@100.103.48.78:/volume1/docker/nginx-proxy-manager/data/custom_ssl/npm-7/fullchain.pem
|
||||
scp -P 62000 /tmp/lk.key Vish@100.103.48.78:/volume1/docker/nginx-proxy-manager/data/custom_ssl/npm-7/privkey.pem
|
||||
ssh -p 62000 Vish@100.103.48.78 'sudo /usr/local/bin/docker exec nginx-proxy-manager nginx -s reload'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Calls not working in Element X
|
||||
1. Check `.well-known` is advertising foci: `curl https://mx.vish.gg/.well-known/matrix/client`
|
||||
2. Check JWT service: `curl https://livekit.mx.vish.gg/livekit/jwt/healthz`
|
||||
3. Check LiveKit is running: `ssh matrix-ubuntu "sudo docker ps | grep livekit"`
|
||||
4. Check LiveKit logs: `ssh matrix-ubuntu "sudo docker logs livekit 2>&1 | tail -20"`
|
||||
|
||||
### Stuck calls
|
||||
See [How to resolve stuck MatrixRTC calls](https://sspaeth.de/2025/02/how-to-resolve-stuck-matrixrtc-calls/) — usually caused by delayed events not cleaning up.
|
||||
|
||||
### JWT service returns 400
|
||||
Normal for unauthenticated requests. Means the service is running correctly.
|
||||
|
||||
### Restarting services
|
||||
```bash
|
||||
ssh matrix-ubuntu
|
||||
cd /opt/livekit
|
||||
sudo docker compose restart
|
||||
```
|
||||
|
||||
### Restarting Synapse
|
||||
```bash
|
||||
ssh matrix-ubuntu
|
||||
sudo systemctl restart synapse-mx.service
|
||||
```
|
||||
169
docs/services/individual/matter-server.md
Normal file
169
docs/services/individual/matter-server.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# Matter Server
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | matter-server |
|
||||
| **Host** | concord_nuc |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `ghcr.io/home-assistant-libs/python-matter-server:stable` |
|
||||
| **Compose File** | `concord_nuc/homeassistant.yaml` |
|
||||
| **Directory** | `concord_nuc` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
matter-server is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (concord_nuc)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd concord_nuc
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f matter-server
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: matter-server
|
||||
image: ghcr.io/home-assistant-libs/python-matter-server:stable
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/vish/docker/matter:/data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/home/vish/docker/matter` | `/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f matter-server
|
||||
|
||||
# Restart service
|
||||
docker-compose restart matter-server
|
||||
|
||||
# Update service
|
||||
docker-compose pull matter-server
|
||||
docker-compose up -d matter-server
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec matter-server /bin/bash
|
||||
# or
|
||||
docker-compose exec matter-server /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for matter-server
|
||||
- **Docker Hub**: [ghcr.io/home-assistant-libs/python-matter-server:stable](https://hub.docker.com/r/ghcr.io/home-assistant-libs/python-matter-server:stable)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on concord_nuc
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `concord_nuc/homeassistant.yaml`
|
||||
191
docs/services/individual/mattermost-db.md
Normal file
191
docs/services/individual/mattermost-db.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# Mattermost Db
|
||||
|
||||
**🟡 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | mattermost-db |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `postgres:17` |
|
||||
| **Compose File** | `homelab_vm/mattermost.yml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f mattermost-db
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: mattermost-db
|
||||
environment:
|
||||
POSTGRES_DB: mattermost
|
||||
POSTGRES_PASSWORD: "REDACTED_PASSWORD"
|
||||
POSTGRES_USER: mattermostuser
|
||||
TZ: America/Los_Angeles
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
retries: 10
|
||||
test:
|
||||
- CMD
|
||||
- pg_isready
|
||||
- -q
|
||||
- -d
|
||||
- mattermost
|
||||
- -U
|
||||
- mattermostuser
|
||||
timeout: 5s
|
||||
hostname: mattermost-db
|
||||
image: postgres:17
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 0:0
|
||||
volumes:
|
||||
- /srv/mattermost/db:/var/lib/postgresql/data:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `POSTGRES_DB` | `mattermost` | Configuration variable |
|
||||
| `POSTGRES_USER` | `mattermostuser` | Configuration variable |
|
||||
| `POSTGRES_PASSWORD` | `***MASKED***` | PostgreSQL password |
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/srv/mattermost/db` | `/var/lib/postgresql/data` | bind | Application data |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
✅ Health check configured
|
||||
**Test Command**: `CMD pg_isready -q -d mattermost -U mattermostuser`
|
||||
**Check Interval**: 10s
|
||||
**Timeout**: 5s
|
||||
**Retries**: 10
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f mattermost-db
|
||||
|
||||
# Restart service
|
||||
docker-compose restart mattermost-db
|
||||
|
||||
# Update service
|
||||
docker-compose pull mattermost-db
|
||||
docker-compose up -d mattermost-db
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec mattermost-db /bin/bash
|
||||
# or
|
||||
docker-compose exec mattermost-db /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for mattermost-db
|
||||
- **Docker Hub**: [Official mattermost-db](https://hub.docker.com/_/postgres:17)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/mattermost.yml`
|
||||
122
docs/services/individual/mattermost-oauth.md
Normal file
122
docs/services/individual/mattermost-oauth.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Mattermost OAuth2 with Authentik
|
||||
|
||||
**Host**: Matrix Ubuntu VM (192.168.0.154)
|
||||
**Domain**: `mm.crista.love`
|
||||
**Port**: 8065
|
||||
**Compose File**: `/opt/mattermost/docker-compose.yml`
|
||||
**Status**: 🔧 Requires Authentik Property Mappings (see below)
|
||||
|
||||
## Important: Mattermost Team Edition Limitation
|
||||
|
||||
⚠️ **Mattermost Team Edition (free) does NOT support generic OpenID Connect!**
|
||||
|
||||
OpenID Connect is Enterprise-only. For Team Edition, we use the **GitLab OAuth workaround** where Authentik emulates GitLab's OAuth endpoints.
|
||||
|
||||
## Authentication Methods
|
||||
|
||||
1. **Local Login** - Email/password on the login page ✅ Always works
|
||||
2. **GitLab OAuth (via Authentik)** - "Log in with authentik" button
|
||||
|
||||
## Authentik Configuration
|
||||
|
||||
### Step 1: Create Custom Scope Mappings
|
||||
|
||||
In Authentik Admin → Customization → Property Mappings → Create → Scope Mapping:
|
||||
|
||||
**Mapping 1: mattermost-username**
|
||||
- **Name**: `mattermost-username`
|
||||
- **Scope Name**: `username`
|
||||
- **Description**: Maps the user's authentik username to the username field for Mattermost authentication.
|
||||
- **Expression**:
|
||||
```python
|
||||
return {
|
||||
"username": request.user.username,
|
||||
}
|
||||
```
|
||||
|
||||
**Mapping 2: mattermost-id** (optional but recommended)
|
||||
- **Name**: `mattermost-id`
|
||||
- **Scope Name**: `id`
|
||||
- **Description**: Maps the user's Mattermost ID or primary key to the id field for Mattermost authentication.
|
||||
- **Expression**:
|
||||
```python
|
||||
return {
|
||||
"id": request.user.attributes.get("mattermostId", request.user.pk),
|
||||
}
|
||||
```
|
||||
|
||||
### Step 2: Provider Configuration
|
||||
|
||||
- **Name**: Mattermost OAuth2
|
||||
- **Type**: OAuth2/OpenID Provider
|
||||
- **Client ID**: `OGxIdZLKqYKgf9Sf9zAFAyhKzBdDvonL7HHSBu1w`
|
||||
- **Redirect URI**: `strict: https://mm.crista.love/signup/gitlab/complete`
|
||||
- **Scopes**: Add the custom `mattermost-username` and `mattermost-id` scopes, plus `openid`, `email`, `profile`
|
||||
|
||||
### Application Created
|
||||
- **Name**: Mattermost
|
||||
- **Slug**: `mattermost`
|
||||
- **Launch URL**: https://mm.crista.love
|
||||
|
||||
## Mattermost Configuration
|
||||
|
||||
Update `/opt/mattermost/config/config.json` with GitLabSettings (NOT OpenIDSettings!):
|
||||
|
||||
```json
|
||||
"GitLabSettings": {
|
||||
"Enable": true,
|
||||
"Secret": "<client_secret_from_authentik>",
|
||||
"Id": "OGxIdZLKqYKgf9Sf9zAFAyhKzBdDvonL7HHSBu1w",
|
||||
"Scope": "",
|
||||
"AuthEndpoint": "https://sso.vish.gg/application/o/authorize/",
|
||||
"TokenEndpoint": "https://sso.vish.gg/application/o/token/",
|
||||
"UserAPIEndpoint": "https://sso.vish.gg/application/o/userinfo/",
|
||||
"DiscoveryEndpoint": "https://sso.vish.gg/application/o/mattermost/.well-known/openid-configuration",
|
||||
"ButtonText": "Log in with authentik",
|
||||
"ButtonColor": "#fd4b2d"
|
||||
}
|
||||
```
|
||||
|
||||
## Activation Steps
|
||||
|
||||
1. **Create Authentik Property Mappings** (see Step 1 above)
|
||||
2. **Update Provider Scopes** - Add the new mappings to the Mattermost OAuth2 provider
|
||||
3. **SSH to Matrix Ubuntu VM**:
|
||||
```bash
|
||||
ssh test@matrix-ubuntu-ip # or via Cloudflare tunnel
|
||||
```
|
||||
4. **Edit config.json**:
|
||||
```bash
|
||||
sudo nano /opt/mattermost/config/config.json
|
||||
```
|
||||
5. **Restart Mattermost**:
|
||||
```bash
|
||||
cd /opt/mattermost && docker compose restart
|
||||
```
|
||||
6. **Test** by visiting https://mm.crista.love - you should see "Log in with authentik" button
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### GitLab button not appearing
|
||||
- Verify `GitLabSettings.Enable` is `true` in config.json
|
||||
- Restart Mattermost after changes
|
||||
- Check for JSON syntax errors: `cat config.json | jq .`
|
||||
|
||||
### Login fails after redirect
|
||||
- Verify redirect URI matches exactly: `https://mm.crista.love/signup/gitlab/complete`
|
||||
- Ensure the custom scope mappings are created AND assigned to the provider
|
||||
- Check Mattermost logs: `docker logs mattermost`
|
||||
|
||||
### User created with wrong username format
|
||||
- If you see usernames like `person-example.com`, you need the `mattermost-id` scope mapping
|
||||
- The `id` field prevents Mattermost from generating IDs from email addresses
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [Authentik Mattermost Team Edition Integration](https://integrations.goauthentik.io/chat-communication-collaboration/mattermost-team-edition/)
|
||||
- [Mattermost GitLab Authentication](https://docs.mattermost.com/integrations-guide/gitlab.html)
|
||||
|
||||
## Change Log
|
||||
|
||||
- **2026-01-31**: Updated to use GitLab OAuth approach for Team Edition compatibility
|
||||
- **2026-01-31**: Created OAuth2 provider and application in Authentik
|
||||
203
docs/services/individual/mattermost.md
Normal file
203
docs/services/individual/mattermost.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Mattermost
|
||||
|
||||
**🟡 Communication Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | mattermost |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Communication |
|
||||
| **Difficulty** | 🟡 |
|
||||
| **Docker Image** | `mattermost/mattermost-team-edition:latest` |
|
||||
| **Compose File** | `homelab_vm/mattermost.yml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f mattermost
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: mattermost
|
||||
depends_on:
|
||||
mattermost-db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
MM_BLEVESETTINGS_INDEXDIR: /mattermost/bleve-indexes
|
||||
MM_SERVICESETTINGS_SITEURL: https://mm.crista.love
|
||||
MM_SQLSETTINGS_DATASOURCE: postgres://mattermostuser:changeME-strong@mattermost-db:5432/mattermost?sslmode=disable&connect_timeout=10
|
||||
MM_SQLSETTINGS_DRIVERNAME: postgres
|
||||
TZ: America/Los_Angeles
|
||||
hostname: mattermost
|
||||
image: mattermost/mattermost-team-edition:latest
|
||||
ports:
|
||||
- 8065:8065
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
user: 0:0
|
||||
volumes:
|
||||
- /mnt/atlantis_docker/mattermost/config:/mattermost/config:rw
|
||||
- /mnt/atlantis_docker/mattermost/data:/mattermost/data:rw
|
||||
- /mnt/atlantis_docker/mattermost/logs:/mattermost/logs:rw
|
||||
- /mnt/atlantis_docker/mattermost/plugins:/mattermost/plugins:rw
|
||||
- /mnt/atlantis_docker/mattermost/client:/mattermost/client/plugins:rw
|
||||
- /mnt/atlantis_docker/mattermost/indexes:/mattermost/bleve-indexes:rw
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `TZ` | `America/Los_Angeles` | Timezone setting |
|
||||
| `MM_SQLSETTINGS_DRIVERNAME` | `postgres` | Configuration variable |
|
||||
| `MM_SQLSETTINGS_DATASOURCE` | `postgres://mattermostuser:changeME-strong@mattermost-db:5432/mattermost?sslmode=disable&connect_timeout=10` | Configuration variable |
|
||||
| `MM_BLEVESETTINGS_INDEXDIR` | `/mattermost/bleve-indexes` | Configuration variable |
|
||||
| `MM_SERVICESETTINGS_SITEURL` | `https://mm.crista.love` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8065 | 8065 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/mnt/atlantis_docker/mattermost/config` | `/mattermost/config` | bind | Configuration files |
|
||||
| `/mnt/atlantis_docker/mattermost/data` | `/mattermost/data` | bind | Application data |
|
||||
| `/mnt/atlantis_docker/mattermost/logs` | `/mattermost/logs` | bind | Log files |
|
||||
| `/mnt/atlantis_docker/mattermost/plugins` | `/mattermost/plugins` | bind | Data storage |
|
||||
| `/mnt/atlantis_docker/mattermost/client` | `/mattermost/client/plugins` | bind | Data storage |
|
||||
| `/mnt/atlantis_docker/mattermost/indexes` | `/mattermost/bleve-indexes` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8065:8065
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ✅ Security options configured
|
||||
- ✅ Non-root user configured
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f mattermost
|
||||
|
||||
# Restart service
|
||||
docker-compose restart mattermost
|
||||
|
||||
# Update service
|
||||
docker-compose pull mattermost
|
||||
docker-compose up -d mattermost
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec mattermost /bin/bash
|
||||
# or
|
||||
docker-compose exec mattermost /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for mattermost
|
||||
- **Docker Hub**: [mattermost/mattermost-team-edition:latest](https://hub.docker.com/r/mattermost/mattermost-team-edition:latest)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the communication category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/mattermost.yml`
|
||||
172
docs/services/individual/meilisearch.md
Normal file
172
docs/services/individual/meilisearch.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# Meilisearch
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | meilisearch |
|
||||
| **Host** | homelab_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `getmeili/meilisearch:v1.6` |
|
||||
| **Compose File** | `homelab_vm/hoarder.yaml` |
|
||||
| **Directory** | `homelab_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
meilisearch is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (homelab_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd homelab_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f meilisearch
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
environment:
|
||||
MEILI_NO_ANALYTICS: 'true'
|
||||
image: getmeili/meilisearch:v1.6
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /root/docker/hoarder/meilisearch:/meili_data
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| `MEILI_NO_ANALYTICS` | `true` | Configuration variable |
|
||||
|
||||
|
||||
### Port Mappings
|
||||
No ports exposed.
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/root/docker/hoarder/meilisearch` | `/meili_data` | bind | Data storage |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
This service does not expose any web interfaces.
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f meilisearch
|
||||
|
||||
# Restart service
|
||||
docker-compose restart meilisearch
|
||||
|
||||
# Update service
|
||||
docker-compose pull meilisearch
|
||||
docker-compose up -d meilisearch
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec meilisearch /bin/bash
|
||||
# or
|
||||
docker-compose exec meilisearch /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for meilisearch
|
||||
- **Docker Hub**: [getmeili/meilisearch:v1.6](https://hub.docker.com/r/getmeili/meilisearch:v1.6)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on homelab_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `homelab_vm/hoarder.yaml`
|
||||
173
docs/services/individual/metube.md
Normal file
173
docs/services/individual/metube.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# Metube
|
||||
|
||||
**🟢 Other Service**
|
||||
|
||||
## 📋 Service Overview
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Service Name** | metube |
|
||||
| **Host** | Bulgaria_vm |
|
||||
| **Category** | Other |
|
||||
| **Difficulty** | 🟢 |
|
||||
| **Docker Image** | `alexta69/metube` |
|
||||
| **Compose File** | `Bulgaria_vm/metube.yml` |
|
||||
| **Directory** | `Bulgaria_vm` |
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
metube is a specialized service that provides specific functionality for the homelab infrastructure.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of REDACTED_APP_PASSWORD
|
||||
- Access to the host system (Bulgaria_vm)
|
||||
|
||||
### Deployment
|
||||
```bash
|
||||
# Navigate to service directory
|
||||
cd Bulgaria_vm
|
||||
|
||||
# Start the service
|
||||
docker-compose up -d
|
||||
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f metube
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Docker Compose Configuration
|
||||
```yaml
|
||||
container_name: metube
|
||||
image: alexta69/metube
|
||||
ports:
|
||||
- 8871:8081
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /root/docker/yt:/downloads
|
||||
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
No environment variables configured.
|
||||
|
||||
### Port Mappings
|
||||
| Host Port | Container Port | Protocol | Purpose |
|
||||
|-----------|----------------|----------|----------|
|
||||
| 8871 | 8081 | TCP | Service port |
|
||||
|
||||
|
||||
### Volume Mappings
|
||||
| Host Path | Container Path | Type | Purpose |
|
||||
|-----------|----------------|------|----------|
|
||||
| `/root/docker/yt` | `/downloads` | bind | Downloaded files |
|
||||
|
||||
|
||||
## 🌐 Access Information
|
||||
|
||||
Service ports: 8871:8081
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
- ⚠️ Consider adding security options (no-new-privileges)
|
||||
- ⚠️ Consider running as non-root user
|
||||
|
||||
## 📊 Resource Requirements
|
||||
|
||||
No resource limits configured
|
||||
|
||||
### Recommended Resources
|
||||
- **Minimum RAM**: 512MB
|
||||
- **Recommended RAM**: 1GB+
|
||||
- **CPU**: 1 core minimum
|
||||
- **Storage**: Varies by usage
|
||||
|
||||
### Resource Monitoring
|
||||
Monitor resource usage with:
|
||||
```bash
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 🔍 Health Monitoring
|
||||
|
||||
⚠️ No health check configured
|
||||
Consider adding a health check:
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:PORT/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### Manual Health Checks
|
||||
```bash
|
||||
# Check container health
|
||||
docker inspect --format='{{.State.Health.Status}}' CONTAINER_NAME
|
||||
|
||||
# View health check logs
|
||||
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' CONTAINER_NAME
|
||||
```
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
**Service won't start**
|
||||
- Check Docker logs: `docker-compose logs service-name`
|
||||
- Verify port availability: `netstat -tulpn | grep PORT`
|
||||
- Check file permissions on mounted volumes
|
||||
|
||||
**Can't access web interface**
|
||||
- Verify service is running: `docker-compose ps`
|
||||
- Check firewall settings
|
||||
- Confirm correct port mapping
|
||||
|
||||
**Performance issues**
|
||||
- Monitor resource usage: `docker stats`
|
||||
- Check available disk space: `df -h`
|
||||
- Review service logs for errors
|
||||
|
||||
### Useful Commands
|
||||
```bash
|
||||
# Check service status
|
||||
docker-compose ps
|
||||
|
||||
# View real-time logs
|
||||
docker-compose logs -f metube
|
||||
|
||||
# Restart service
|
||||
docker-compose restart metube
|
||||
|
||||
# Update service
|
||||
docker-compose pull metube
|
||||
docker-compose up -d metube
|
||||
|
||||
# Access service shell
|
||||
docker-compose exec metube /bin/bash
|
||||
# or
|
||||
docker-compose exec metube /bin/sh
|
||||
```
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Official Documentation**: Check the official docs for metube
|
||||
- **Docker Hub**: [alexta69/metube](https://hub.docker.com/r/alexta69/metube)
|
||||
- **Community Forums**: Search for community discussions and solutions
|
||||
- **GitHub Issues**: Check the project's GitHub for known issues
|
||||
|
||||
## 🔗 Related Services
|
||||
|
||||
Other services in the other category on Bulgaria_vm
|
||||
|
||||
---
|
||||
|
||||
*This documentation is auto-generated from the Docker Compose configuration. For the most up-to-date information, refer to the official documentation and the actual compose file.*
|
||||
|
||||
**Last Updated**: 2025-11-17
|
||||
**Configuration Source**: `Bulgaria_vm/metube.yml`
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user