Compare commits
10 Commits
a6a778f993
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 98c56e3ffc | |||
| 3eaf4859c6 | |||
| cd4796e709 | |||
| 4092a0d543 | |||
| e9d0613bd0 | |||
| deefb99506 | |||
| 2fed95bfd7 | |||
| 20dcdfdb30 | |||
| aa064c3dbc | |||
| a0530fb095 |
@@ -3,6 +3,7 @@
|
|||||||
Ace/
|
Ace/
|
||||||
Database/
|
Database/
|
||||||
BoilerPlate/
|
BoilerPlate/
|
||||||
|
StuShifters/
|
||||||
|
|
||||||
Gitea/gitea/
|
Gitea/gitea/
|
||||||
Gitea/mysql/
|
Gitea/mysql/
|
||||||
@@ -17,5 +18,7 @@ JellyFin/JellySeerr
|
|||||||
JellyFin/Prowlarr
|
JellyFin/Prowlarr
|
||||||
JellyFin/Radarr
|
JellyFin/Radarr
|
||||||
JellyFin/Sonarr
|
JellyFin/Sonarr
|
||||||
|
Vikunja/db
|
||||||
|
Vikunja/files
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ services:
|
|||||||
image: cloudreve/cloudreve:latest
|
image: cloudreve/cloudreve:latest
|
||||||
container_name: cloudreve-backend
|
container_name: cloudreve-backend
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgresql
|
postgresql:
|
||||||
- redis
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "5212:5212"
|
- "5212:5212"
|
||||||
@@ -19,11 +21,14 @@ services:
|
|||||||
- CR_CONF_Redis.Server=redis:6379
|
- CR_CONF_Redis.Server=redis:6379
|
||||||
volumes:
|
volumes:
|
||||||
- "${DATA_PATH}:/cloudreve/data"
|
- "${DATA_PATH}:/cloudreve/data"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5212/api/v4/site/ping"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 40s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
# Best practice: Pin to major version.
|
|
||||||
# NOTE: For major version jumps:
|
|
||||||
# backup & consult https://www.postgresql.org/docs/current/pgupgrade.html
|
|
||||||
image: postgres:17
|
image: postgres:17
|
||||||
container_name: postgresql
|
container_name: postgresql
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -33,6 +38,12 @@ services:
|
|||||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
- POSTGRES_HOST_AUTH_METHOD=trust
|
||||||
volumes:
|
volumes:
|
||||||
- database_postgres:/var/lib/postgresql/data
|
- database_postgres:/var/lib/postgresql/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U cloudreve"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 30s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:latest
|
image: redis:latest
|
||||||
@@ -40,8 +51,13 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- redis_data:/data
|
- redis_data:/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 30s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
# backend_data:
|
|
||||||
database_postgres:
|
database_postgres:
|
||||||
redis_data:
|
redis_data:
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
gitea:
|
gitea:
|
||||||
image: gitea/gitea:latest
|
image: gitea/gitea:latest
|
||||||
@@ -22,6 +21,15 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "3001:3000"
|
- "3001:3000"
|
||||||
- "222:22"
|
- "222:22"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/healthz"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 40s
|
||||||
|
retries: 3
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mysql:8
|
image: mysql:8
|
||||||
@@ -37,7 +45,12 @@ services:
|
|||||||
- gitea
|
- gitea
|
||||||
volumes:
|
volumes:
|
||||||
- ./mysql:/var/lib/mysql
|
- ./mysql:/var/lib/mysql
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 30s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
gitea:
|
gitea:
|
||||||
|
|||||||
@@ -5,3 +5,5 @@ JellySeerr/*
|
|||||||
Prowlarr/*
|
Prowlarr/*
|
||||||
Radarr/*
|
Radarr/*
|
||||||
Sonarr/*
|
Sonarr/*
|
||||||
|
Bazarr/*
|
||||||
|
Lidarr/*
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -13,3 +13,10 @@ nginx-down:
|
|||||||
cd ../NginxReverseProxy
|
cd ../NginxReverseProxy
|
||||||
docker-compose down
|
docker-compose down
|
||||||
cd -
|
cd -
|
||||||
|
|
||||||
|
restart-glue:
|
||||||
|
docker-compose down gluetun
|
||||||
|
docker-compose up -d gluetun
|
||||||
|
sleep 5
|
||||||
|
docker logs gluetun
|
||||||
|
|
||||||
|
|||||||
+149
-10
@@ -17,6 +17,12 @@ services:
|
|||||||
- "7359:7359/udp"
|
- "7359:7359/udp"
|
||||||
- "1900:1900/udp"
|
- "1900:1900/udp"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
|
|
||||||
@@ -57,6 +63,12 @@ services:
|
|||||||
- ${DOWNLOADS}:/data/downloads
|
- ${DOWNLOADS}:/data/downloads
|
||||||
ports:
|
ports:
|
||||||
- "8989:8989"
|
- "8989:8989"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8989/ping"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
@@ -73,6 +85,12 @@ services:
|
|||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
volumes:
|
volumes:
|
||||||
- ./Prowlarr/config:/config
|
- ./Prowlarr/config:/config
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:9696"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
|
|
||||||
@@ -93,26 +111,34 @@ services:
|
|||||||
- ${TVSHOWS}:/data/tvshows
|
- ${TVSHOWS}:/data/tvshows
|
||||||
- ${MOVIES}:/data/movies
|
- ${MOVIES}:/data/movies
|
||||||
- ${DOWNLOADS}:/data/downloads
|
- ${DOWNLOADS}:/data/downloads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:7878/ping"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
|
|
||||||
qbittorrent:
|
bazarr:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
container_name: bazarr
|
||||||
container_name: qbittorrent
|
image: lscr.io/linuxserver/bazarr:latest
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
- "6881:6881"
|
|
||||||
- "6881:6881/udp"
|
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID}
|
- PUID=${PUID}
|
||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
- WEBUI_PORT=8080
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./Radarr/config:/config
|
- ./Bazarr/config:/config
|
||||||
- ${TVSHOWS}:/data/tvshows
|
- ${TVSHOWS}:/data/tvshows
|
||||||
- ${MOVIES}:/data/movies
|
- ${MOVIES}:/data/movies
|
||||||
- ${DOWNLOADS}:/data/downloads
|
ports:
|
||||||
|
- "6767:6767"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:6767/health"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
@@ -127,10 +153,123 @@ services:
|
|||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
ports:
|
ports:
|
||||||
- ${PORT:-8191}:8191
|
- ${PORT:-8191}:8191
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8191"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
|
|
||||||
|
gluetun-webui:
|
||||||
|
image: scuzza/gluetun-webui:latest
|
||||||
|
container_name: gluetun-webui
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3002:3000"
|
||||||
|
environment:
|
||||||
|
- GLUETUN_CONTROL_URL=http://gluetun:8000
|
||||||
|
- TRUST_PROXY=true
|
||||||
|
# - GLUETUN_API_KEY=${GLUETUN_API_KEY}
|
||||||
|
networks:
|
||||||
|
- lingen
|
||||||
|
restart: unless-stopped
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "wget -q -O- http://localhost:3000/api/health || exit 1"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 10s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
gluetun:
|
||||||
|
image: qmcgaw/gluetun
|
||||||
|
container_name: gluetun
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
environment:
|
||||||
|
- VPN_SERVICE_PROVIDER=protonvpn
|
||||||
|
- VPN_TYPE=wireguard
|
||||||
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
|
||||||
|
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
|
||||||
|
- API_LOG_LEVEL=info
|
||||||
|
volumes:
|
||||||
|
- /home/shaun/Projects/JellyFin/Gluetun/auth:/gluetun/auth
|
||||||
|
ports:
|
||||||
|
- "51820:51820/udp"
|
||||||
|
- "8000:8000"
|
||||||
|
- "6881:6881" # Add qBittorrent listening port
|
||||||
|
- "6881:6881/udp" # Add qBittorrent listening port UDP
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "wget -q -O- http://localhost:8000/v1/vpn/status || exit 1"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
|
networks:
|
||||||
|
- lingen
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
qbittorrent:
|
||||||
|
image: lscr.io/linuxserver/qbittorrent:latest
|
||||||
|
container_name: qbittorrent
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
environment:
|
||||||
|
- PUID=${PUID}
|
||||||
|
- PGID=${PGID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- WEBUI_PORT=8080
|
||||||
|
volumes:
|
||||||
|
- ./Radarr/config:/config
|
||||||
|
- ${TVSHOWS}:/data/tvshows
|
||||||
|
- ${MOVIES}:/data/movies
|
||||||
|
- ${DOWNLOADS}:/data/downloads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
|
networks:
|
||||||
|
- lingen
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
lidarr:
|
||||||
|
container_name: lidarr
|
||||||
|
image: ghcr.io/hotio/lidarr
|
||||||
|
ports:
|
||||||
|
- "8686:8686"
|
||||||
|
environment:
|
||||||
|
- PUID=${PUID}
|
||||||
|
- PGID=${PGID}
|
||||||
|
- UMASK=002
|
||||||
|
- TZ=${TZ}
|
||||||
|
volumes:
|
||||||
|
- ./Lidarr/config:/config
|
||||||
|
- ./Lidarr/data:/data
|
||||||
|
- ./Lidarr/downloads:/downloads
|
||||||
|
- ${MUSIC}:/data/music
|
||||||
|
- ${DOWNLOADS}:/data/downloads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8686/ping"]
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 5s
|
||||||
|
interval: 30s
|
||||||
|
retries: 3
|
||||||
|
networks:
|
||||||
|
- lingen
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lingen:
|
lingen:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
@@ -218,7 +218,11 @@
|
|||||||
{ ipAddress: "192.168.40.5", port: "7676", name: "PruneMate", description: "Clean up Docker data", site: "prune", icon: "fa-solid fa-trash" },
|
{ ipAddress: "192.168.40.5", port: "7676", name: "PruneMate", description: "Clean up Docker data", site: "prune", icon: "fa-solid fa-trash" },
|
||||||
{ ipAddress: "192.168.40.5", port: "60072", name: "Scanopy", description: "Scan and organize your network", site: "scan", icon: "fa-solid fa-satellite-dish" },
|
{ ipAddress: "192.168.40.5", port: "60072", name: "Scanopy", description: "Scan and organize your network", site: "scan", icon: "fa-solid fa-satellite-dish" },
|
||||||
{ ipAddress: "192.168.40.5", scheme: 'https://', port: "8443", name: "Minecraft", description: "Crafty Minecraft server admin", site: "minecraft", icon: "fa-solid fa-cubes" },
|
{ ipAddress: "192.168.40.5", scheme: 'https://', port: "8443", name: "Minecraft", description: "Crafty Minecraft server admin", site: "minecraft", icon: "fa-solid fa-cubes" },
|
||||||
{ ipAddress: "192.168.40.5", port: "8081", name: "IT Tools", description: "Collection of tools for IT Dev", site: "tools", icon: "fa-solid fa-tools" }
|
{ ipAddress: "192.168.40.5", port: "8081", name: "IT Tools", description: "Collection of tools for IT Dev", site: "tools", icon: "fa-solid fa-tools" },
|
||||||
|
{ ipAddress: "192.168.40.5", port: "3002", name: "Gluetun", description: "Web UI for VPN status", site: "gluetun", icon: "fa-solid fa-shield" },
|
||||||
|
{ ipAddress: "192.168.40.5", port: "6767", name: "Bazarr", description: "Subtitle provider", site: "bazarr", icon: "fa-solid fa-closed-captioning" },
|
||||||
|
{ ipAddress: "192.168.40.5", port: "3456", name: "Vikunja", description: "Tasks and sprints", site: "vikunja", icon: "fa-solid fa-list-check" },
|
||||||
|
{ ipAddress: "192.168.40.5", port: "8084", name: "StirlingPDF", description: "PDF tools", site: "pdf", icon: "fa-solid fa-file-pdf" }
|
||||||
];
|
];
|
||||||
|
|
||||||
const buttonContainer = document.querySelector(".button-container");
|
const buttonContainer = document.querySelector(".button-container");
|
||||||
|
|||||||
@@ -9,14 +9,19 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- '80:80'
|
- '80:80'
|
||||||
- '81:81'
|
- '81:81'
|
||||||
|
|
||||||
- '443:443'
|
- '443:443'
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
- ./letsencrypt:/etc/letsencrypt
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
networks:
|
networks:
|
||||||
- lingen
|
- lingen
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:81/api/version/check"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
start_period: 40s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lingen:
|
lingen:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
# README
|
# Lingen Homelab
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
This repository contains multiple services, used within the Lingen Homelab.
|
The Lingen Homelab is a comprehensive self-hosted services repository designed to provide a complete ecosystem of applications for media management, VPN services, development tools, and more. All services are containerized using Docker and managed through a unified `Makefile` for simplified operations.
|
||||||
They are all controlled via a `Makefile`
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -11,27 +10,47 @@ They are all controlled via a `Makefile`
|
|||||||
|
|
||||||
## Available Services
|
## Available Services
|
||||||
|
|
||||||
Here is a list of available services within the repository:
|
### Media & Entertainment
|
||||||
|
- **AudioBookShelf** - Self-hosted audiobook and podcast server
|
||||||
|
- **Jellyfin** - Open-source media system and home theater
|
||||||
|
- **JellySeerr** - Media request management for Jellyfin
|
||||||
|
- **Radarr** - Movie collection manager and download automation
|
||||||
|
- **Sonarr** - TV series collection manager and download automation
|
||||||
|
- **Lidarr** - Music collection manager and download automation
|
||||||
|
- **Bazarr** - Subtitle management for Radarr and Sonarr
|
||||||
|
|
||||||
1. **AudioBookShelf**
|
### Content & Downloads
|
||||||
2. **Cloudreve**
|
- **Prowlarr** - Indexer manager for Radarr, Sonarr, and Lidarr
|
||||||
3. **Dockhand**
|
- **Flaresolverr** - Proxy server to handle Cloudflare protection
|
||||||
4. **Gitea**
|
- **Qbittorrent** - Lightweight torrent client for media downloads
|
||||||
5. **Jellyfin**
|
- **Scanopy** - Container monitoring and management system
|
||||||
6. **Gluetun**
|
|
||||||
7. **JellySeerr**
|
### Infrastructure & Security
|
||||||
8. **Prowlarr**
|
- **Gluetun** - VPN client container for secure connections
|
||||||
9. **Radarr**
|
- **Gluetun WebUI** - Web interface for Gluetun management
|
||||||
10. **Sonarr**
|
- **NginxReverseProxy** - Reverse proxy for routing and SSL termination
|
||||||
11. **Minecraft**
|
- **Newt** - API management and monitoring tool for use with Pangolin
|
||||||
12. **Scanopy**
|
|
||||||
13. **NginxReverseProxy**
|
### Development & Utilities
|
||||||
|
- **Gitea** - Lightweight Git service for version control
|
||||||
|
- **Cloudreve** - Self-hosted cloud storage solution
|
||||||
|
- **Dockhand** - Docker management utility
|
||||||
|
- **Database** - Shared database services
|
||||||
|
|
||||||
|
### Additional Services
|
||||||
|
- **Minecraft** - Minecraft game server management
|
||||||
|
- **Prunemate** - Docker cleanup and maintenance tool
|
||||||
|
- **Tools** - Development and operational tools
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## General Commands
|
## Quick Start
|
||||||
|
|
||||||
The repository uses a `Makefile` to simplify service management across the project. Below are the common commands available:
|
### Basic Commands
|
||||||
|
|
||||||
- `make up` Bring service up
|
The repository uses a `Makefile` to simplify service management. Below are the common commands available:
|
||||||
- `make down` Bring service down
|
|
||||||
|
```bash
|
||||||
|
make up # Bring all services up in the background
|
||||||
|
make down # Bring all services down
|
||||||
|
```
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
up:
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
down:
|
||||||
|
docker-compose down
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
services:
|
||||||
|
StirlingPdf:
|
||||||
|
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf
|
||||||
|
container_name: StirlingPdf
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- lingen
|
||||||
|
ports:
|
||||||
|
- "8084:8080"
|
||||||
|
networks:
|
||||||
|
lingen:
|
||||||
|
driver: bridge
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
up:
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
down:
|
||||||
|
docker-compose down
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
services:
|
||||||
|
vikunja:
|
||||||
|
image: vikunja/vikunja:2.3.0
|
||||||
|
container_name: vikunja
|
||||||
|
environment:
|
||||||
|
VIKUNJA_SERVICE_PUBLICURL: https:/tasks.shaunc.co.uk/
|
||||||
|
VIKUNJA_SERVICE_JWTSECRET: 4c9faad669e44f47d4055631403ba93ffa978f20015e45ab2e79b83daccc6f5a
|
||||||
|
VIKUNJA_DATABASE_PATH: /db/vikunja.db
|
||||||
|
ports:
|
||||||
|
- 3456:3456
|
||||||
|
# healthcheck:
|
||||||
|
# test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3456/api/v1/docs.json"]
|
||||||
|
# interval: 30s
|
||||||
|
# timeout: 5s
|
||||||
|
# start_period: 40s
|
||||||
|
# retries: 3
|
||||||
|
volumes:
|
||||||
|
- ./files:/app/vikunja/files
|
||||||
|
- ./db:/db
|
||||||
|
restart: unless-stopped
|
||||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 397 KiB |
Reference in New Issue
Block a user