1 Commits
Author SHA1 Message Date
marc 6e288a394f ldapauth 2022-10-02 21:57:48 +02:00
137 changed files with 963 additions and 6756 deletions
-1
View File
@@ -1,4 +1,3 @@
liberapay: marcpartensky
patreon: marcpartensky
github: marcpartensky
custom:
+1 -2
View File
@@ -23,5 +23,4 @@ jobs:
run: make merge
- name: Validate docker-compose.yml
# run: docker-compose -f stacks/docker-compose.yml config
# run: /opt/validator/validator-cli.py -f stacks/docker-compose.yml
run: docker-compose -f stacks/docker-compose.yml ps
run: /opt/validator/validator-cli.py -f stacks/docker-compose.yml
+1 -15
View File
@@ -10,22 +10,8 @@ data/authelia
data/mx-puppet-discord
data/matrix
data/heimdall
data/traefik
data/pihole/etc-pihole
data/pxe
data/postgres/certs
data/wireguard
data/vaultwarden
data/filebrowser
data/focalboard
data/openvpn_*
data/mailcow
data/dockvpn
data/hydra
data/yt-dlp
data/mongo
data/gpg
data/redis
data.tar.gz
data.7z
data.7z.gpg
services/template.yml
+5 -20
View File
@@ -8,24 +8,9 @@ mswarm: merge
docker stack deploy -c stacks/docker-compose.yml vps
down:
docker stack rm vps
pull:
for file in services/*; do docker-compose -f $$file pull; done
export:
7z a -p data.7z data
import:
7z x -p data.7z
sign:
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
# rm data.tgz
networks:
docker network create --driver overlay --attachable caddy || true
docker network create --driver overlay --attachable ldap || true
docker network create --driver overlay --attachable postgres || true
docker network create --driver overlay --attachable mongo || true
docker network create --driver overlay --attachable vpn || true
docker network create --driver overlay --attachable redis || true
docker network create --driver overlay --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --driver overlay --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
node:
docker node update --label-add net=web contabo
docker node update --label-add net=none tower
tar cvzf data.tgz data
gpg --encrypt --recipient 'marc.partensky@gmail.com' data.tgz
rm data.tgz
network:
docker network create --driver overlay --attachable caddy
+1 -4
View File
@@ -1,7 +1,6 @@
[![Docker Swarm Deployed](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml/badge.svg)](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
# Docker
[![Docker Swarm Services](https://cdn.discordapp.com/attachments/809914059981586462/1042966875514077227/unknown.png)](https://swarm.marcpartensky.com)
## Domains
- https://marcpartensky.com
@@ -9,6 +8,7 @@
- https://ialab.marcpartensky.com
- https://notebook.marcpartensky.com
- https://searx.marcpartensky.com
- https://cloud.marcpartensky.com
- https://wordpress.marcpartensky.com
- https://git.marcpartensky.com
- https://gitlab.marcpartensky.com
@@ -20,11 +20,8 @@
- https://swarm.marcpartensky.com
- https://auth.marcpartensky.com
- https://seafile.marcpartensky.com
- https://cloud.marcpartensky.com
- https://mail.marcpartensky.com
- https://arch.marcpartensky.com
- https://matrix.marcpartensky.com
- https://vault.marcpartensky.com
<!-- - https://dns.marcpartensky.com -->
<!-- - https://glou.marcpartensky.com -->
<!-- - https://minecraft.marcpartensky.com -->
-183
View File
@@ -1,183 +0,0 @@
bind_host: 0.0.0.0
bind_port: 3000
users:
- name: marc
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
auth_attempts: 5
block_auth_min: 15
http_proxy: ""
language: ""
theme: auto
debug_pprof: false
web_session_ttl: 720
dns:
bind_hosts:
- 0.0.0.0
port: 53
anonymize_client_ip: false
protection_enabled: true
blocking_mode: default
blocking_ipv4: ""
blocking_ipv6: ""
blocked_response_ttl: 10
protection_disabled_until: null
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
ratelimit: 20
ratelimit_whitelist: []
refuse_any: true
upstream_dns:
- https://dns10.quad9.net/dns-query
upstream_dns_file: ""
bootstrap_dns:
- 9.9.9.10
- 149.112.112.10
- 2620:fe::10
- 2620:fe::fe:10
all_servers: false
fastest_addr: false
fastest_timeout: 1s
allowed_clients: []
disallowed_clients: []
blocked_hosts:
- version.bind
- id.server
- hostname.bind
trusted_proxies:
- 127.0.0.0/8
- ::1/128
cache_size: 4194304
cache_ttl_min: 0
cache_ttl_max: 0
cache_optimistic: false
bogus_nxdomain: []
aaaa_disabled: false
enable_dnssec: false
edns_client_subnet:
custom_ip: ""
enabled: false
use_custom: false
max_goroutines: 300
handle_ddr: true
ipset: []
ipset_file: ""
bootstrap_prefer_ipv6: false
filtering_enabled: true
filters_update_interval: 24
parental_enabled: false
safebrowsing_enabled: false
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
safe_search:
enabled: false
bing: true
duckduckgo: true
google: true
pixabay: true
yandex: true
youtube: true
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
blocked_services: []
upstream_timeout: 10s
private_networks: []
use_private_ptr_resolvers: true
local_ptr_upstreams: []
use_dns64: false
dns64_prefixes: []
serve_http3: false
use_http3_upstreams: false
tls:
enabled: false
server_name: ""
force_https: false
port_https: 443
port_dns_over_tls: 853
port_dns_over_quic: 853
port_dnscrypt: 0
dnscrypt_config_file: ""
allow_unencrypted_doh: false
certificate_chain: ""
private_key: ""
certificate_path: ""
private_key_path: ""
strict_sni_check: false
querylog:
ignored: []
interval: 2160h
size_memory: 1000
enabled: true
file_enabled: true
statistics:
ignored: []
interval: 24h
enabled: true
filters:
- enabled: true
url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
name: AdGuard DNS filter
id: 1
- enabled: true
url: https://adaway.org/hosts.txt
name: AdAway Default Blocklist
id: 2
- enabled: true
url: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
name: WindowsSpyBlocker - Hosts spy rules
id: 1668812860
- enabled: true
url: https://malware-filter.gitlab.io/malware-filter/phishing-filter-agh.txt
name: Phishing URL Blocklist (PhishTank and OpenPhish)
id: 1668812861
- enabled: true
url: https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt
name: Perflyst and Dandelion Sprout's Smart-TV Blocklist
id: 1668812862
- enabled: true
url: https://raw.githubusercontent.com/mitchellkrogza/The-Big-List-of-Hacked-Malware-Web-Sites/master/hosts
name: The Big List of Hacked Malware Web Sites
id: 1668812863
whitelist_filters: []
user_rules: []
dhcp:
enabled: false
interface_name: ""
local_domain_name: lan
dhcpv4:
gateway_ip: ""
subnet_mask: ""
range_start: ""
range_end: ""
lease_duration: 86400
icmp_timeout_msec: 1000
options: []
dhcpv6:
range_start: ""
lease_duration: 86400
ra_slaac_only: false
ra_allow_slaac: false
clients:
runtime_sources:
whois: true
arp: true
rdns: true
dhcp: true
hosts: true
persistent: []
log_file: ""
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_compress: false
log_localtime: false
verbose: false
os:
group: ""
user: ""
rlimit_nofile: 0
schema_version: 20
-11
View File
@@ -1,11 +0,0 @@
[database]
type = postgres
host = postgres:5432
name = grafana
user = grafana
password = ZTliY2MwOWQ5ZjNiMzUyMTc5YWMwNmJi
ssl_mode = disable
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-35
View File
@@ -1,35 +0,0 @@
[ req ]
default_bits = 8192
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca
dirstring_type = nobmp
[ req_distinguished_name ]
countryName = FR
countryName_default = FR
countryName_min = 2
countryName_max = 2
localityName = Europe/Paris
organizationalUnitName = Marc Partensky Corp
commonName = Marc Partensky
commonName_max = 64
emailAddress = marc@marcpartensky.com
emailAddress_max = 40
# [ req_attributes ]
# challengePassword = A challenge password
# challengePassword_min = 4
# challengePassword_max = 20
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
@@ -1,8 +0,0 @@
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER marc PASSWORD ZGQ4ZDk5OWEwYjNlMDJlNmQ5NmE1NjM5;
GRANT ALL PRIVILEGES ON DATABASE * TO marc;
EOSQL
-14
View File
@@ -1,14 +0,0 @@
#!/bin/sh
cd /var/lib/postgresql/certs
# private key and certificate from it
openssl req -new -text -newkey rsa:8192 -passout pass:$POSTGRES_PASSWORD -subj /CN=localhost -out server.req -keyout privkey.pem
# self signed root certificate
openssl rsa -in privkey.pem -passin pass:$POSTGRES_PASSWORD -out server.key
# derived certificate
openssl req -x509 -in server.req -text -key server.key -out server.crt
# change permissions to the root certificate for postgres
chmod 600 server.key
chown postgres:postgres server.key
+2 -6
View File
@@ -11,13 +11,9 @@ global:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['node-exporter:9100']
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets:
- cadvisor:8080
- targets: ['localhost:9090']
-7
View File
@@ -1,7 +0,0 @@
http:
middlewares:
basic:
basicAuth:
users:
- test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/
# usersFile: etc/traefik/.htpasswd
-98
View File
@@ -1,98 +0,0 @@
# https://doc.traefik.io/traefik/routing/overview/
global:
checkNewVersion: true
sendAnonymousUsage: false
api:
# insecure: false # = secure
insecure: true
dashboard: true
# debug: true
debug: false
providers:
docker:
swarmMode: true
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false # traefik enabled containers only
network: caddy
file:
filename: dynamic.yml
serversTransport: # enable ssl backend
insecureSkipVerify: true
certificatesResolvers:
# https://community.traefik.io/t/help-with-multiple-certificate-resolvers/15134
tls:
acme:
tlsChallenge: {}
email: marc.partensky@gmail.com
storage: /config/acme.json
cloudflare:
acme:
email: marc.partensky@gmail.com
storage: /config/acme.json
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
ping: {} # mandatory for healthcheck
log:
level: debug
# level: error
entryPoints:
websecure:
address: ':443'
forwardedHeaders:
insecure: true
# http3:
# advertisedPort: 443
http:
tls:
certResolver: tls
# middlewares:
# - ldap
# http3:
# advertisedPort: 443
web:
address: ':80'
forwardedHeaders:
insecure: true
# forwardedHeaders:
# trustedIPs:
# - "127.0.0.1/32"
# - "192.168.1.7"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
priority: 10
experimental:
# http3: true
plugins:
ldapAuth:
moduleName: "github.com/wiltonsr/ldapAuth"
version: "v0.0.19"
souin:
moduleName: "github.com/darkweak/souin"
version: "v1.6.22"
sablier:
moduleName: "github.com/acouvreur/sablier"
version: "v1.0.0"
# ldap entreprise https://doc.traefik.io/traefik-enterprise/operations/static-configuration/
# authSources:
# ldapSource:
# ldap:
# url: ldaps://marcpartensky.com:636
# startTLS: true
# insecureSkipVerify: true
# bindDN: cn=admin,dc=admin,dc=org
# - --providers.docker.network=web # <== Operate on the docker network named web
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_TLSCHALLENGE=true
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_EMAIL=marc.partensky@gmail.com
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_STORAGE=/letsencrypt/acme.json # log settings (options: error, debug, panic, fatal, warn, info) - https://docs.traefik.io/observability/logs/ ##
## Provider Settings - https://docs.traefik.io/providers/docker/#provider-configuration ##
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##
Vendored
+9 -6
View File
@@ -1,23 +1,26 @@
traefik
caddy
website
valentin
arch
open-web-calendar
adguard
oxivia
wordpress-oxivia
servant
discord
discord-bot
ia
docker-api
ialab
portainer
authentik
todolist
nextcloud
jenkins
seafile
matrix
etherpad
monero-miner
monero-node
pritunl
pritunl-mongo
fail2ban
ldap
ldap-manager
vaultwarden
authentik
-43
View File
@@ -1,43 +0,0 @@
version: "3.9"
services:
adguard:
image: adguard/adguardhome
restart: unless-stopped
ports:
- 53:53/tcp
- 53:53/udp
- 67:67/udp
- 68:68/udp # adguard home as dhcp
# - 80:80/tcp # https/dns-over-https
# - 443:443/tcp
# - 443:443/udp
# - 3000:3000/tcp # adguard home's admin
- 853:853/tcp # dns-over-tls
- 784:784/udp # dns-over-quic
- 853:853/udp
- 8853:8853/udp
- 5443:5443/tcp # dnscrypt server
- 5443:5443/udp
volumes:
- adguard:/opt/adguardhome/work
- ../data/adguard:/opt/adguardhome/conf
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.adguard.rule: >
Host(`adguard.marcpartensky.com`) ||
Host(`adguard.marcpartensky.fr`)
traefik.http.routers.adguard.entrypoints: websecure
traefik.http.routers.adguard.tls.certresolver: cloudflare
traefik.http.services.adguard.loadbalancer.server.port: 3000
traefik.http.routers.adguard.middlewares: ldap_auth
volumes:
adguard:
networks:
caddy:
external: true
+8 -9
View File
@@ -5,15 +5,14 @@ services:
restart: unless-stopped
networks:
- caddy
deploy:
labels:
caddy: agenda.militant.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.agenda_militant.rule: Host(`agenda.militant.marcpartensky.com`)
traefik.http.routers.agenda_militant.entrypoints: websecure
traefik.http.routers.agenda_militant.tls.certresolver: tls
traefik.http.services.agenda_militant.loadbalancer.server.port: 8080
labels:
caddy: agenda.militant.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.agenda_militant.rule: Host(`agenda.militant.marcpartensky.com`)
traefik.http.routers.agenda_militant.entrypoints: websecure
traefik.http.routers.agenda_militant.tls.certresolver: tls
traefik.http.services.agenda_militant.loadbalancer.server.port: 8080
networks:
caddy:
external: true
+1 -15
View File
@@ -4,24 +4,10 @@ services:
image: budtmo/docker-android-x86-12.0
restart: unless-stopped
privileged: true
networks:
- caddy
ports:
# - "6080:6080"
- "6080:6080"
- "5554:5554"
- "5555:5555"
- "4723:4723"
environment:
DEVICE: "Samsung Galaxy S6"
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.android.rule: >
Host(`android.marcpartensky.fr`)
traefik.http.routers.android.entrypoints: websecure
traefik.http.routers.android.tls.certresolver: cloudflare
traefik.http.services.android.loadbalancer.server.port: 6080
networks:
caddy:
external: true
+17 -35
View File
@@ -10,41 +10,23 @@ services:
- ldap
volumes:
- arch:/home/marc
deploy:
labels:
caddy: arch.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.arch.rule: Host(`arch.marcpartensky.com`)
traefik.http.routers.arch.entrypoints: websecure
traefik.http.routers.arch.tls.certresolver: tls
traefik.http.services.arch.loadbalancer.server.port: 8080
# traefik.http.routers.arch.middlewares: ldap_auth, sablier
#
# # sablier
# # The sablier URL service, must be reachable from the Traefik instance
# traefik.http.middlewares.sablier.plugin.sablierUrl: http://sablier:10000
# # Comma separated names of containers/services/deployments etc.
# traefik.http.middlewares.sablier.plugin.names: arch
# # The session duration after which containers/services/deployments instances are shutdown
# traefik.http.middlewares.sablier.plugin.sessionDuration: 1m
# # You can only use one strategy at a time
# # To do so, only declare `dynamic` or `blocking`
#
# # Dynamic strategy, provides the waiting webui
# # (Optional) Defaults to the middleware name
# traefik.http.middlewares.sablier.plugin.dynamic.displayName: Starting application
# # (Optional) Set to true or false to show details specifcally for this middleware, unset to use Sablier server defaults
# traefik.http.middlewares.sablier.plugin.dynamic.showDetails: "true"
# # (Optional) The theme to use
# traefik.http.middlewares.sablier.plugin.dynamic.theme: hacker-terminal
# # (Optional) The loading page refresh frequency
# traefik.http.middlewares.sablier.plugin.dynamic.refreshFrequency: 5s
#
# # Blocking strategy, waits until services are up and running
# # but will not wait more than `timeout`
# # blocking:
# # timeout: 1m
labels:
caddy: arch.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.arch.rule: Host(`arch.marcpartensky.com`)
traefik.http.routers.arch.entrypoints: websecure
traefik.http.routers.arch.tls.certresolver: tls
traefik.http.services.arch.loadbalancer.server.port: 8080
# ldapAuth Register Middleware ====================================================
traefik.http.routers.arch.middlewares: ldap_auth
# ldapAuth Options=================================================================
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.enabled: "true"
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.logLevel: DEBUG
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.url: ldap://ldap.marcpartensky.com
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.port: 636
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.baseDN: dc=marcpartensky,dc=com
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.attribute: uid
volumes:
arch:
+55 -71
View File
@@ -6,114 +6,98 @@ services:
restart: unless-stopped
command: server
environment:
AUTHENTIK_DEBUG: "true"
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgres
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME: admin
# WORKERS: 2
volumes:
- authentik_media:/media
- authentik_templates:/templates
- authentik_geoip:/geoip
env_file:
- ../data/secrets/authentik.env
# ports:
# - "0.0.0.0:${AUTHENTIK_PORT_HTTP:-9000}:9000"
# - "0.0.0.0:${AUTHENTIK_PORT_HTTPS:-9443}:9443"
volumes:
- media:/media
- templates:/templates
- geoip:/geoip
# depends_on:
# - postgres
# - redis
# - worker
depends_on:
- authentik_postgres
- authentik_redis
- authentik_worker
networks:
- authentik
- caddy
- postgres
- redis
- ldap
labels:
caddy: authentik.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9000}}"
# traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.com`)
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.fr`)
traefik.http.routers.authentik.entrypoints: websecure
traefik.http.routers.authentik.tls.certresolver: cloudflare
traefik.http.services.authentik.loadbalancer.server.port: 9000
traefik.enable: "true"
traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.com`)
traefik.http.routers.authentik.entrypoints: websecure
traefik.http.routers.authentik.tls.certresolver: tls
traefik.http.services.authentik.loadbalancer.server.port: 9000
worker:
authentik_postgres:
image: postgres:alpine
restart: unless-stopped
volumes:
- authentik_postgres:/var/lib/postgresql/data
env_file:
- ../data/secrets/authentik.env
networks:
- authentik
authentik_redis:
image: redis:alpine
restart: unless-stopped
networks:
- authentik
authentik_worker:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.2.1}
restart: unless-stopped
user: root
command: worker
environment:
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: postgres
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgres
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
# This is optional, and can be removed. If you remove this, the following will happen
# - The permissions for the /backups and /media folders aren't fixed, so make sure they are 1000:1000
# - The docker socket can't be accessed anymore
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/authentik:/backups
- media:/media
- certs:/certs
- templates:/templates
- geoip:/geoip
- authentik_backups:/backups
- authentik_media:/media
- authentik_certs:/certs
- authentik_templates:/templates
- authentik_geoip:/geoip
env_file:
- ../data/secrets/authentik.env
networks:
- authentik
- postgres
- redis
# authentik_geoipupdate:
# image: maxmindinc/geoipupdate:latest
# restart: unless-stopped
# volumes:
# - authentik_geoip:/usr/share/GeoIP
# environment:
# GEOIPUPDATE_EDITION_IDS: "GeoLite2-City"
# GEOIPUPDATE_FREQUENCY: "8"
# # env_file:
# # - ../data/secrets/authentik.env
# networks:
# - authentik
# version: "3.5"
ldap:
image: ghcr.io/goauthentik/ldap
ports:
- 3389:389
- 6636:636
# Optionally specify which networks the container should be
# might be needed to reach the core authentik server
authentik_geoipupdate:
image: maxmindinc/geoipupdate:latest
restart: unless-stopped
volumes:
- authentik_geoip:/usr/share/GeoIP
environment:
GEOIPUPDATE_EDITION_IDS: "GeoLite2-City"
GEOIPUPDATE_FREQUENCY: "8"
# env_file:
# - ../data/secrets/authentik.env
networks:
- authentik
environment:
AUTHENTIK_DEBUG: "true"
AUTHENTIK_HOST: http://authentik:9000
# AUTHENTIK_HOST: https://authentik:9443
# AUTHENTIK_HOST: https://authentik.marcpartensky.fr
AUTHENTIK_INSECURE: "false"
env_file:
- ../data/secrets/authentik_ldap.env
volumes:
# backups:
postgres:
media:
certs:
templates:
geoip:
authentik_postgres:
authentik_backups:
authentik_media:
authentik_certs:
authentik_templates:
authentik_geoip:
networks:
authentik:
ldap:
external: true
redis:
external: true
postgres:
external: true
caddy:
external: true
+1 -2
View File
@@ -21,8 +21,7 @@ services:
caddy.@ws.1_header: "Upgrade websocket"
caddy.0_reverse_proxy: "@ws {{upstreams 61985}}"
traefik.enable: "true"
# traefik.http.routers.beef.rule: Host(`beef.marcpartensky.com`)
traefik.http.routers.beef.rule: Host(`beef.marcpartensky.fr`)
traefik.http.routers.beef.rule: Host(`beef.marcpartensky.com`)
traefik.http.routers.beef.entrypoints: websecure
traefik.http.routers.beef.tls.certresolver: tls
traefik.http.services.beef.loadbalancer.server.port: 3000
-26
View File
@@ -1,26 +0,0 @@
version: "3.9"
services:
burpserver:
image: pschiffe/burp-server
ports:
- "4971:4971"
volumes:
- conf:/etc/burp
- data:/var/spool/burp
environment:
BURP_CLIENTS_CONFIG: "host1:pass1 host2:pass2 host3:pass3"
tmpfs:
- /run
- /tmp
privileged: true
# deploy:
# labels:
# traefik.enable: "true"
# traefik.http.routers.burpserver.rule: Host(`burp.marcpartensky.fr`)
# traefik.http.routers.burpserver.entrypoints: websecure
# traefik.http.routers.burpserver.tls.certresolver: tls
# traefik.http.services.burpserver.loadbalancer.server.port: 4971
volumes:
conf:
data:
-54
View File
@@ -1,54 +0,0 @@
version: '3'
services:
cadvisor:
# image: google/cadvisor:v0.39.0
# image: google/cadvisor
image: gcr.io/cadvisor/cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker:/var/lib/docker:ro
command:
- '-docker_only'
- '-logtostderr'
# - '-storage-driver=influxdb'
# - '-storage-opt=host=swarm-manager1:8086'
# - '-storage-opt=database=cadvisor'
# - '-storage-opt=retention=1d'
# - '-storage-opt=user=root'
# - '-storage-opt=password=yourpassword'
# - '-housekeeping_interval=5s'
# - '-enable_load_reader'
# - '-cpu_global_percentage=true'
# - '-cpu_historic_interval=1m'
# - '-docker_label_enable'
networks:
- caddy
deploy:
placement:
constraints:
- node.role == manager
resources:
limits:
memory: 1g
reservations:
memory: 512m
restart_policy:
condition: on-failure
mode: global
labels:
traefik.enable: "true"
traefik.http.routers.cadvisor.rule: Host(`cadvisor.marcpartensky.fr`)
# traefik.http.routers.cadvisor.rule: >
# Host(`cadvisor.marcpartensky.com`) || Host(`cadvisor.marcpartensky.fr`)
traefik.http.routers.cadvisor.entrypoints: websecure
traefik.http.routers.cadvisor.tls.certresolver: tls
traefik.http.services.cadvisor.loadbalancer.server.port: 8080
traefik.http.routers.cadvisor.middlewares: ldap_auth
networks:
caddy:
external: true
-6
View File
@@ -1,6 +0,0 @@
version: "3.9"
services:
chatgpt:
image: wongsaang/chatgpt-ui:latest
ports:
- "8000:80"
-11
View File
@@ -1,11 +0,0 @@
version: "3.9"
services:
cloudflare:
image: cloudflare/cloudflared:latest
env_file: ../data/secrets/cloudflare.env
command: tunnel --no-autoupdate run
networks:
- caddy
networks:
caddy:
external: true
-17
View File
@@ -1,17 +0,0 @@
version: "3.9"
services:
cowrie:
image: rayson/cowrie:20160907-1
user: cowrie
ports:
- "22:2222/tcp"
- "23:2223/tcp"
environment:
COWRIE_TELNET_ENABLED: "yes"
volumes:
- cowrie:/opt/cowrie/data:Z
- cowrie-log:/opt/cowrie/log:Z
volumes:
cowrie:
cowrie-log:
-21
View File
@@ -1,21 +0,0 @@
version: "3.9"
services:
controller:
image: cybercube/crafty-controller
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.controller.loadbalancer.server.port: 8000
traefik.http.routers.controller.rule: Host(`controller.marcpartensky.fr`)
# traefik.http.routers.controller.rule: >
# Host(`controller.marcpartensky.com`) || Host(`controller.marcpartensky.fr`)
traefik.http.routers.controller.entrypoints: websecure
# traefik.http.routers.controller.tls.certresolver: tls
traefik.http.routers.controller.tls.certresolver: cloudflare
# traefik.http.routers.controller.middlewares: ldap_auth
networks:
caddy:
external: true
-29
View File
@@ -1,29 +0,0 @@
version: "3.9"
services:
ui:
image: alseambusher/crontab-ui
networks:
- caddy
# ports:
# - 8000:8000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- crontabs:/crontab-ui/crontabs
deploy:
labels:
traefik.enable: "true"
traefik.http.services.ui.loadbalancer.server.port: 8000
traefik.http.routers.ui.rule: >
Host(`cron.marcpartensky.com`) ||
Host(`cron.marcpartensky.fr`)
traefik.http.routers.ui.entrypoints: websecure
# traefik.http.routers.ui.tls.certresolver: tls
traefik.http.routers.ui.tls.certresolver: cloudflare
traefik.http.routers.ui.middlewares: ldap_auth
volumes:
crontabs:
networks:
caddy:
external: true
+19
View File
@@ -0,0 +1,19 @@
version: "3.9"
services:
discord-bot:
image: marcpartensky/discord-bot
restart: unless-stopped
ports:
- "7010:8000"
networks:
- discord
depends_on:
- docker_api
env_file:
- ../data/secrets/esclave.env
deploy:
replicas: 1
networks:
discord:
-34
View File
@@ -1,34 +0,0 @@
version: "3.9"
services:
bot:
image: marcpartensky/discord-bot:v107.be20e90.2022-05-21
restart: unless-stopped
ports:
- "7010:8000"
networks:
- discord
env_file:
- ../data/secrets/discord-bot.env
deploy:
replicas: 1
ia:
image: marcpartensky/discord-bot
restart: unless-stopped
ports:
- "7011:8000"
networks:
- discord
env_file:
- ../data/secrets/ia.env
deploy:
replicas: 1
chatgpt:
image: xxxbrian/discord_chatgpt_bot:latest
env_file:
- ../data/secrets/discord_chatgpt.env
networks:
discord:
+13
View File
@@ -0,0 +1,13 @@
version: "3.9"
services:
docker_api:
image: marcpartensky/docker-api
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- discord
networks:
discord:
-22
View File
@@ -1,22 +0,0 @@
version: "3.9"
services:
docker_api:
image: marcpartensky/docker-api
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- discord
# db:
# image: postgres
# container_name: docker-app-db
# restart: unless-stopped
# environment:
# POSTGRES_USER: docker_user
# POSTGRES_PASSWORD: d3kTrklm54208
# POSTGRES_DB: docker
networks:
discord:
-8
View File
@@ -1,8 +0,0 @@
version: "3.3"
services:
dockercraft:
image: gaetan/dockercraft
ports:
- "25567:25565"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:Z
-28
View File
@@ -1,28 +0,0 @@
version: "3.9"
services:
dockvpn:
image: alekslitvinenk/openvpn
cap_add:
- NET_ADMIN
networks:
- caddy
devices:
- /dev/net/tun
ports:
- 1194:1194/udp
- 8080:8080/tcp
volumes:
- ../data/dockvpn:/opt/Dockovpn_data/clients
environment:
HOST_ADDR: vpn.marcpartensky.fr
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.dockvpn.rule: >
Host(`dockvpn.marcpartensky.fr`)
traefik.http.routers.dockvpn.entrypoints: websecure
traefik.http.routers.dockvpn.tls.certresolver: cloudflare
traefik.http.services.dockvpn.loadbalancer.server.port: 8080
networks:
caddy:
external: true
+16 -11
View File
@@ -15,17 +15,22 @@ services:
- duplicati_source:/source
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.duplicati.loadbalancer.server.port: 8200
traefik.http.routers.duplicati.rule: >
Host(`duplicati.marcpartensky.com`) ||
Host(`duplicati.marcpartensky.fr`)
traefik.http.routers.duplicati.entrypoints: websecure
traefik.http.routers.duplicati.tls.certresolver: tls
# traefik.http.routers.duplicati.tls.certresolver: cloudflare
# traefik.http.routers.duplicati.middlewares: ldap_auth
labels:
caddy: duplicati.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8200}}"
traefik.enable: "true"
traefik.http.routers.duplicati.rule: Host(`duplicati.marcpartensky.com`)
traefik.http.routers.duplicati.entrypoints: websecure
traefik.http.routers.duplicati.tls.certresolver: tls
traefik.http.services.duplicati.loadbalancer.server.port: 8200
# ldapAuth Options=================================================================
traefik.http.routers.duplicati.middlewares: ldap_auth
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.enabled: "true"
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.logLevel: DEBUG
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.url: ldap://ldap.marcpartensky.com
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.port: 389
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.baseDN: dc=marcpartensky,dc=com
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.attribute: uid
volumes:
duplicati_config:
-7
View File
@@ -1,7 +0,0 @@
version: "3.9"
services:
image: fazalfarhan01/earnapp:lite
volumes:
- earnapp:/etc/earnapp
environment:
EARNAPP_UUID: $EARNAPP_DEVICE_ID
-34
View File
@@ -1,34 +0,0 @@
version: "3.9"
services:
etesync:
image: victorrds/etesync
restart: unless-stopped
networks:
- caddy
- postgres
env_file:
- ../data/secrets/etesync.env
volumes:
- static:/srv/etebase/static
- media:/data/media
deploy:
labels:
traefik.enable: "true"
traefik.http.services.etesync.loadbalancer.server.port: 3735
traefik.http.routers.etesync.rule: >
# Host(`etesync.marcpartensky.com`) ||
Host(`etesync.marcpartensky.fr`)
traefik.http.routers.etesync.entrypoints: websecure
traefik.http.routers.etesync.tls.certresolver: tls
# traefik.http.routers.etesync.tls.certresolver: cloudflare
# traefik.http.routers.etesync.middlewares: ldap_auth
networks:
postgres:
external: true
caddy:
external: true
volumes:
static:
media:
+11 -28
View File
@@ -4,36 +4,19 @@ services:
etherpad:
image: etherpad/etherpad
restart: unless-stopped
env_file:
- ../data/secrets/etherpad.env
# environment:
# SETTINGS_PATH: /etc/etherpad/settings.json
environment:
ADMIN_PASSWORD: supersecret
networks:
- caddy
- postgres
# volumes:
# - data:/opt/etherpad-lite/var
# volumes:
# - ../data/etherpad/settings.json:/opt/etherpad-lite/settings.json
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.etherpad.rule: >
Host(`pad.marcpartensky.com`) ||
Host(`pad.marcpartensky.fr`)
traefik.http.routers.etherpad.entrypoints: websecure
traefik.http.routers.etherpad.tls.certresolver: cloudflare
traefik.http.services.etherpad.loadbalancer.server.port: 9001
traefik.http.middlewares.redirect-pad-com.redirectregex.regex: "^https://etherpad.marcpartensky.com/(.*)"
traefik.http.middlewares.redirect-pad-com.redirectregex.replacement: "https://pad.marcpartensky.com/$${1}"
traefik.http.middlewares.redirect-pad-fr.redirectregex.regex: "^https://etherpad.marcpartensky.fr/(.*)"
traefik.http.middlewares.redirect-pad-fr.redirectregex.replacement: "https://pad.marcpartensky.fr/$${1}"
# volumes:
# data:
- caddy
labels:
caddy: etherpad.marcpartensky.com, pad.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9001}}"
traefik.enable: "true"
traefik.http.routers.etherpad.rule: Host(`etherpad.marcpartensky.com`)
traefik.http.routers.etherpad.entrypoints: websecure
traefik.http.routers.etherpad.tls.certresolver: tls
traefik.http.services.etherpad.loadbalancer.server.port: 9001
networks:
caddy:
external: true
postgres:
external: true
-10
View File
@@ -1,10 +0,0 @@
version: "3.9"
services:
feroxbuster:
image: epi052/feroxbuster
volumes:
- /srv/feroxbuster:/srv
command: >
-u http://ravens-pu8yvgzavpu7ooyr.francecentral.cloudapp.azure.com
-x php
--wordlist /srv/rockyou.txt
-31
View File
@@ -1,31 +0,0 @@
version: "3.9"
services:
filebrowser:
image: hurlenko/filebrowser
restart: unless-stopped
# user: "${UID}:${GID}"
volumes:
- /root/Videos:/data
- ../data/filebrowser:/config
# environment:
# FB_BASEURL: /filebrowser
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.filebrowser.rule: >
Host(`file.marcpartensky.fr`) ||
Host(`file.marcpartensky.com`)
traefik.http.routers.filebrowser.entrypoints: websecure
traefik.http.routers.filebrowser.tls.certresolver: tls
traefik.http.services.filebrowser.loadbalancer.server.port: 8080
traefik.http.routers.filebrowser.middlewares: ldap_auth
networks:
caddy:
external: true
volumes:
data:
-21
View File
@@ -1,21 +0,0 @@
version: "3.9"
services:
focalboard:
image: mattermost/focalboard
volumes:
- data:/opt/focalboard/data
- pack:/opt/focalboard/pack
- ../data/focalboard/config.json:/opt/focalboard/config.json
environment:
EXCLUDE_ENTERPRISE: "1"
networks:
- postgres
ports:
- "8000:8000"
volumes:
data:
pack:
networks:
postgres:
external: true
-31
View File
@@ -1,31 +0,0 @@
version: "3.9"
services:
fuseki:
image: stain/jena-fuseki
volumes:
# - ./config:/fuseki/configuration
- data:/fuseki/databases
# environment:
# - FUSEKI_HOME=/fuseki
# - FUSEKI_BASE=/fuseki/databases
env_file:
- ../data/secrets/fuseki.env
networks:
- caddy
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
labels:
traefik.enable: "true"
traefik.http.routers.fuseki.rule: Host(`fuseki.marcpartensky.com`)
traefik.http.services.fuseki.loadbalancer.server.port: 3030
networks:
caddy:
external: true
volumes:
data:
-25
View File
@@ -1,25 +0,0 @@
version: "3.9"
services:
gitbook:
image: marcpartensky/gitbook
# image: billryan/gitbook
# image: yanqd0/gitbook
restart: unless-stopped
# volumes:
# - ../data/gitbook:/gitbook
environment:
# BOOK_URL: https://github.com/marcpartensky/docker
BOOK_URL: https://github.com/marcpartensky/markdown
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitbook.rule: Host(`gitbook.marcpartensky.com`)
traefik.http.routers.gitbook.entrypoints: websecure
traefik.http.routers.gitbook.tls.certresolver: tls
traefik.http.services.gitbook.loadbalancer.server.port: 4000
networks:
caddy:
external: true
+19
View File
@@ -0,0 +1,19 @@
version: "3.9"
services:
gitea_postgres:
image: postgres
restart: unless-stopped
env_file:
- ../data/secrets/gitea.env
networks:
- caddy
- gitea
volumes:
- gitea_postgres:/var/lib/postgresql/data
volumes:
gitea_postgres:
networks:
gitea:
+17 -26
View File
@@ -13,38 +13,29 @@ services:
- ../data/secrets/gitea.env
networks:
- caddy
- postgres
- gitea
volumes:
- ssh:/data/git/.ssh
- data:/data
- gitea_ssh:/data/git/.ssh
- gitea:/data
# - /etc/localtime:/etc/localtime:ro
ports:
- "42070:22"
# labels:
# caddy: gitea.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 3000}}"
# traefik.enable: "true"
# traefik.http.routers.gitea.rule: Host(`git.marcpartensky.com`)
# traefik.http.routers.gitea.entrypoints: websecure
# traefik.http.routers.gitea.tls.certresolver: tls
# traefik.http.services.gitea.loadbalancer.server.port: 3000
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitea.rule: >
Host(`git.marcpartensky.com`) ||
Host(`git.marcpartensky.fr`)
traefik.http.routers.gitea.entrypoints: websecure
# traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.routers.gitea.tls.certresolver: cloudflare
traefik.http.services.gitea.loadbalancer.server.port: 3000
- "7012:22"
depends_on:
- gitea_postgres
labels:
caddy: gitea.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 3000}}"
traefik.enable: "true"
traefik.http.routers.gitea.rule: Host(`git.marcpartensky.com`)
traefik.http.routers.gitea.entrypoints: websecure
traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.services.gitea.loadbalancer.server.port: 3000
volumes:
data:
ssh:
gitea:
gitea_ssh:
networks:
postgres:
external: true
gitea:
caddy:
external: true
+2 -14
View File
@@ -17,6 +17,7 @@ services:
- gitlab_config:/etc/gitlab
- gitlab_log:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
shm_size: '256m'
labels:
caddy: gitlab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 80}}"
@@ -25,26 +26,13 @@ services:
traefik.http.routers.gitlab.entrypoints: websecure
traefik.http.routers.gitlab.tls.certresolver: tls
traefik.http.services.gitlab.loadbalancer.server.port: 80
# shm_size: '512m'
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitlab.rule: Host(`gitlab.marcpartensky.com`)
traefik.http.routers.gitlab.entrypoints: websecure
traefik.http.routers.gitlab.tls.certresolver: tls
traefik.http.services.gitlab.loadbalancer.server.port: 80
resources:
reservations:
cpus: "1"
# memory: "512M"
memory: "3G"
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
deploy:
mode: replicated
replicas: 2
replicas: 4
volumes:
gitlab_config:
-36
View File
@@ -1,36 +0,0 @@
version: "3.9"
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
env_file:
- ../data/secrets/gluetun.env
# environment:
# # VPN_SERVICE_PROVIDER: protonvpn
# # VPN_SERVICE_PROVIDER: openvpn
# OPENVPN_USER: marcpartensky
# OPENVPN_PASSWORD: Lxxxxxxxxxyyyyyxxxxn
# # SERVER_COUNTRIES: France
# # FREE_ONLY: on # Only required when using ProtonVPN's free service
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp # Application container's ports to be published
networks:
- vpn
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.gluetun.loadbalancer.server.port: 8000
traefik.http.routers.gluetun.rule: Host(`gluetun.marcpartensky.com`)
traefik.http.routers.gluetun.entrypoints: websecure
traefik.http.routers.gluetun.tls.certresolver: tls
traefik.http.routers.gluetun.middlewares: ldap_auth
networks:
vpn:
external: true
caddy:
external: true
-7
View File
@@ -1,7 +0,0 @@
version: "3.9"
services:
gpg:
image: marcpartensky/gpg
volumes:
- /srv:/srv
- ../data/gpg:/root/keys
-38
View File
@@ -1,38 +0,0 @@
version: "3.9"
services:
grafana:
image: grafana/grafana
restart: unless-stopped
env_file:
- ../data/secrets/grafana.env
# environment:
# GF_INSTALL_PLUGINS: grafana-ldap-auth
volumes:
- ../data/grafana:/etc/grafana
- grafana:/var/lib/grafana
networks:
- caddy
- postgres
- ldap
deploy:
labels:
caddy: grafana.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 3000}}"
traefik.enable: "true"
traefik.http.routers.grafana.rule: >
Host(`grafana.marcpartensky.fr`) ||
Host(`grafana.marcpartensky.com`)
traefik.http.routers.grafana.entrypoints: websecure
traefik.http.routers.grafana.tls.certresolver: tls
traefik.http.services.grafana.loadbalancer.server.port: 3000
volumes:
grafana:
networks:
ldap:
external: true
postgres:
external: true
caddy:
external: true
+2 -10
View File
@@ -19,18 +19,10 @@ services:
traefik.http.routers.heimdall.rule: Host(`heimdall.marcpartensky.com`)
traefik.http.routers.heimdall.entrypoints: websecure
traefik.http.routers.heimdall.tls: "true"
# traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.source: marcpartensky.com
# traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.baseDN: dc=marcpartensky,dc=com
traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.source: marcpartensky.com
traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.baseDN: dc=marcpartensky,dc=com
# traefik.http.services.heimdall.loadbalancer.server.port: 80
# traefik.http.routers.heimdall.middlewares: authelia-basic@docker
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.heimdall.rule: Host(`heimdall.marcpartensky.com`)
traefik.http.routers.heimdall.entrypoints: websecure
traefik.http.routers.heimdall.tls.certresolver: tls
traefik.http.services.heimdall.loadbalancer.server.port: 80
traefik.http.routers.duplicati.middlewares: ldap_auth
networks:
caddy:
-10
View File
@@ -1,10 +0,0 @@
version: "3.9"
services:
homeassistant:
restart: unless-stopped
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- config:/config
- /etc/localtime:/etc/localtime:ro
privileged: true
network_mode: host
-9
View File
@@ -12,15 +12,6 @@ services:
labels:
caddy: homer.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.homer.rule: >
Host(`homer.marcpartensky.com`) ||
Host(`homer.marcpartensky.fr`)
traefik.http.routers.homer.entrypoints: websecure
traefik.http.routers.homer.tls.certresolver: tls
traefik.http.services.homer.loadbalancer.server.port: 8080
volumes:
homer:
-6
View File
@@ -1,6 +0,0 @@
version: "3.9"
services:
honeygain:
image: marcpartensky/honeygain
env_file:
- ../data/secrets/honeygain.env
-16
View File
@@ -1,16 +0,0 @@
version: "3.9"
services:
hydra:
image: marcpartensky/hydra:latest
network_mode: host
env_file:
- ../data/secrets/hydra.env
# command: -P /rockyou.txt -L /usernames.txt ssh://192.168.252.18
# workdir: /root
volumes:
- ../data/hydra/rockyou.txt:/rockyou.txt
- ../data/hydra/usernames.txt:/usernames.txt
- hydra:/root
volumes:
hydra:
+15 -14
View File
@@ -2,11 +2,19 @@ version: "3.9"
services:
ialab:
image: marcpartensky/ialab:latest
# volumes:
# - ialab:/app
image: marcpartensky/ialab
user: nobody
restart: unless-stopped
environment:
FLASK_APP: server.py
# entrypoint: "gunicorn server:app"
# entrypoint: "gunicorn --chdir /app server:app"
volumes:
- ialab:/app
networks:
- caddy
depends_on:
- caddy
labels:
caddy: ialab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8000}}"
@@ -14,18 +22,11 @@ services:
traefik.http.routers.ialab.rule: Host(`ialab.marcpartensky.com`)
traefik.http.routers.ialab.entrypoints: websecure
traefik.http.routers.ialab.tls.certresolver: tls
traefik.http.services.ialab.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.ialab.rule: Host(`ialab.marcpartensky.com`)
traefik.http.routers.ialab.entrypoints: websecure
traefik.http.routers.ialab.tls.certresolver: tls
traefik.http.services.ialab.loadbalancer.server.port: 80
traefik.http.services.ialab.loadbalancer.server.port: 8000
volumes:
ialab:
# volumes:
# ialab:
#
networks:
caddy:
external: true
-65
View File
@@ -1,65 +0,0 @@
version: "3.9"
services:
ipfs:
restart: unless-stopped
image: lscr.io/linuxserver/ipfs
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Paris
volumes:
- ipfs:/config
- /srv/:/srv
networks:
- caddy
ports:
# - 80:80 #dumb http client
# - 443:443 #optional
- 4001:4001
- 5001:5001
- 8080:8080
deploy:
resources:
limits:
cpus: '0.1'
memory: 500M
# reservations:
# cpus: '0.1'
# memory: 100M
labels:
traefik.enable: "true"
# traefik.http.routers.ipfs.rule: Host(`ipfs.marcpartensky.com`)
traefik.http.routers.ipfs.rule: Host(`ipfs.marcpartensky.fr`)
# traefik.http.routers.ipfs.rule: >
# Host(`ipfs.marcpartensky.com`) || Host(`ipfs.marcpartensky.fr`)
# traefik.http.routers.ipfs.entrypoints: websecure
# traefik.http.routers.ipfs.tls.certresolver: tls
traefik.http.routers.ipfs.tls.certresolver: cloudflare
traefik.http.services.ipfs.loadbalancer.server.port: 5001
traefik.http.routers.ifps.middlewares: ldap_auth
# traefik.frontend.redirect.regex: ^https://ipfs.marcpartensky.com$$
# the middleware 'add-context' must be defined so that the regex rules can be attached to it
# traefik.http.routers.ifps.middlewares: add-context
#
# # here is the logic provided by gustavomtborges of this gist:
# traefik.http.middlewares.add-context.redirectregex.regex: ^https:\\/\\/([^\\/]+)\\/?$$
# traefik.http.middlewares.add-context.redirectregex.replacement: https://$$1/webui
#
traefik.http.routers.ipfs.middlewares: custom_repath
traefik.http.middlewares.custom_repath.replacepathregex.regex: ^/$$
traefik.http.middlewares.custom_repath.replacepathregex.replacement: /webui
# the middleware 'add-context' must be defined so that the regex rules can be attached to it
traefik.http.routers.ipfs.middlewares: add-context
# here is the logic provided by gustavomtborges of this gist:
traefik.http.middlewares.add-context.redirectregex.regex: ^https:\\/\\/([^\\/]+)\\/?$$
traefik.http.middlewares.add-context.redirectregex.replacement: https://$$1/webui
volumes:
ipfs:
networks:
caddy:
external: true
-47
View File
@@ -1,47 +0,0 @@
version: "3.9"
services:
jellyfin:
image: jellyfin/jellyfin:latest
environment:
# PUID: 1000
# PGID: 1000
# TZ: Europe/Paris
JELLYFIN_PublishedServerUrl: jellyfin.marcpartensky.fr
devices:
- /dev/dri
volumes:
- config:/config
- cache:/cache
- media:/media
- movies:/movies
- musics:/musics
- photos:/photos
- ~/Videos/Youtube:/videos
# ports:
# - 8920:8920 #optional https self signed
# - 7359:7359/udp #optional lan discovery
# - 1900:1900/udp #optional dnla
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.jellyfin.rule: >
Host(`jellyfin.marcpartensky.fr`) ||
Host(`jellyfin.marcpartensky.com`)
traefik.http.routers.jellyfin.entrypoints: websecure
traefik.http.routers.jellyfin.tls.certresolver: tls
traefik.http.services.jellyfin.loadbalancer.server.port: 8096
volumes:
config:
cache:
media:
movies:
musics:
photos:
videos:
networks:
caddy:
external: true
+5 -24
View File
@@ -2,22 +2,17 @@ version: "3.9"
services:
jupyterhub:
image: marcpartensky/jupyterhub
image: jupyterhub/jupyterhub
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ../data/jupyterhub/jupyterhub_config.py:/srv/jupyterhub/jupyterhub_config.py
# - jupyterhub:/srv/jupyterhub
networks:
- ldap
- caddy
- jupyterhub
- caddy
environment:
# DOCKER_IMAGE: marcpartensky/jupyterlab
DOCKER_IMAGE: jupyterhub/singleuser
DOCKER_NETWORK_NAME: caddy
DOCKER_JUPYTER_IMAGE: marcpartensky/jupyterlab
DOCKER_NETWORK_NAME: jupyterhub
HUB_IP: jupyterhub
DOCKER_HOST: unix:///var/run/docker.sock
labels:
caddy: jupyterhub.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8000}}"
@@ -25,22 +20,8 @@ services:
traefik.http.routers.jupyterhub.rule: Host(`jupyterhub.marcpartensky.com`)
traefik.http.routers.jupyterhub.entrypoints: websecure
traefik.http.routers.jupyterhub.tls.certresolver: tls
traefik.http.services.jupyterhub.loadbalancer.server.port: 8000
# traefik.docker.network: jupyterhub_default
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.jupyterhub.rule: Host(`jupyterhub.marcpartensky.com`)
traefik.http.routers.jupyterhub.rule: Host(`hub.marcpartensky.fr`)
traefik.http.routers.jupyterhub.entrypoints: websecure
traefik.http.routers.jupyterhub.tls.certresolver: tls
traefik.http.services.jupyterhub.loadbalancer.server.port: 8000
traefik.http.services.jupyterhub.loadbalancer.server.port: 3000
networks:
jupyterhub:
name: jupyterhub
driver: overlay
caddy:
external: true
ldap:
external: true
+10 -30
View File
@@ -2,41 +2,23 @@ version: "3.9"
services:
jupyterlab:
# image: jupyter/datascience-notebook:latest
image: marcpartensky/jupyterlab
# restart: unless-stopped
restart: unless-stopped
environment:
# - GEN_CERT=yes
JUPYTER_ENABLE_LAB: "yes"
GRANT_SUDO: "yes"
JUPYTER_CONFIG_DIR: /home/jupyter/.jupyter
# entrypoint: python -m jupyter lab
# entrypoint: start.sh jupyter lab --user root
entrypoint: start.sh jupyter lab --user root
networks:
- caddy
# labels:
# caddy: lab.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 8888}}"
# traefik.enable: "true"
# traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.com`)
# traefik.http.routers.jupyterlab.entrypoints: websecure
# traefik.http.routers.jupyterlab.tls.certresolver: tls
# traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
# volumes:
# - jupyterlab:/home/jupyter
# - ../data/jupyterlab/:/home/jupyter/.jupyter/
deploy:
placement:
constraints:
- node.role == manager
labels:
traefik.enable: "true"
# traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.fr`)
traefik.http.routers.jupyterlab.rule: >
Host(`lab.marcpartensky.fr`) && Host(`lab.marcpartensky.com`)
traefik.http.routers.jupyterlab.entrypoints: websecure
traefik.http.routers.jupyterlab.tls.certresolver: cloudflare
traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
labels:
caddy: lab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8888}}"
traefik.enable: "true"
traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.com`)
traefik.http.routers.jupyterlab.entrypoints: websecure
traefik.http.routers.jupyterlab.tls.certresolver: tls
traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
# entrypoint: start-notebook.sh \
# --NotebookApp.keyfile=key/0000_key-certbot.pem
# --NotebookApp.certfile=cert/0000_csr-certbot.pem
@@ -45,8 +27,6 @@ services:
# - /etc/letsencrypt/csr:/home/jovyan/work/cert
# - /etc/letsencrypt:/etc/letsencrypt
#
volumes:
jupyterlab:
networks:
caddy:
-29
View File
@@ -1,29 +0,0 @@
version: "3.9"
services:
keycloak:
image: quay.io/keycloak/keycloak:19.0.3
env_file:
- ../data/secrets/keycloak.env
networks:
- caddy
# command: start-dev
command: start --optimized
labels:
caddy: keycloak.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.keycloak.rule: Host(`keycloak.marcpartensky.com`)
traefik.http.routers.keycloak.entrypoints: websecure
traefik.http.routers.keycloak.tls.certresolver: tls
traefik.http.services.keycloak.loadbalancer.server.port: 8080
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.keycloak.rule: Host(`keycloak.marcpartensky.com`)
traefik.http.routers.keycloak.entrypoints: websecure
traefik.http.routers.keycloak.tls.certresolver: tls
traefik.http.services.keycloak.loadbalancer.server.port: 8080
networks:
caddy:
external: true
-6
View File
@@ -1,6 +0,0 @@
version: "3.9"
services:
kippo:
image: tomdesinto/kippo
ports:
- "22:22"
-14
View File
@@ -1,14 +0,0 @@
version: "3.9"
services:
languagetool:
image: erikvl87/languagetool
restart: unless-stopped
networks:
- caddy
labels:
caddy: languagetoo.marcpartensky.com
caddy.reverse_proxy: "{{ upstreams 8010 }}"
networks:
caddy:
external: true
-48
View File
@@ -1,48 +0,0 @@
version: "3.9"
services:
ldap_manager_go:
image: romnn/ldap-manager
# command: --generate
env_file:
- ../data/secrets/ldap_manager_go.env
networks:
- ldap
- caddy
environment:
HTTP_PORT: 80
LDAP_HOST: "ldap"
LDAP_PORT: 636
# LDAP_ADMIN_PASSWORD: admin
# LDAP_CONFIG_PASSWORD: config
LDAP_ORGANIZATION: Marc Partensky
# LDAP_DOMAIN: marcpartensky.com
LDAP_DOMAIN: marcpartensky.fr
DAP_BASE_DN: dc=admin,dc=org
# DEFAULT_ADMIN_USERNAME: ldapadmin
# DEFAULT_ADMIN_PASSWORD: changeme
# FORCE_CREATE_ADMIN: "true"
LDAP_TLS: "false"
LDAP_USE_RFC2307BIS: "true"
ISSUER: ldap@marcpartensky.com
AUDIENCE: marcpartensky.com
GENERATE: "true" # ports:
# - 9090:9090
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.ldap_manager_go.rule: Host(`ldapgo.marcpartensky.com`)
traefik.http.routers.ldap_manager_go.rule: >
Host(`ldapgo.marcpartensky.com`) || Host(`ldapgo.marcpartensky.fr`)
traefik.http.routers.ldap_manager_go.entrypoints: websecure
traefik.http.routers.ldap_manager_go.tls.certresolver: tls
traefik.http.services.ldap_manager_go.loadbalancer.server.port: 80
networks:
ldap:
external: true
caddy:
external: true
+8 -17
View File
@@ -20,23 +20,14 @@ services:
networks:
- ldap
- caddy
# labels:
# caddy: auth.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams}}"
# traefik.enable: "true"
# traefik.http.routers.ldap_manager.rule: Host(`auth.marcpartensky.com`)
# traefik.http.routers.ldap_manager.entrypoints: websecure
# traefik.http.routers.ldap_manager.tls.certresolver: tls
# traefik.http.services.ldap_manager.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.ldap_manager.rule: >
Host(`auth.marcpartensky.com`) || Host(`auth.marcpartensky.fr`)
traefik.http.routers.ldap_manager.entrypoints: websecure
# traefik.http.routers.ldap_manager.tls.certresolver: tls
traefik.http.routers.ldap_manager.tls.certresolver: cloudflare
traefik.http.services.ldap_manager.loadbalancer.server.port: 80
labels:
caddy: auth.marcpartensky.com
caddy.reverse_proxy: "{{upstreams}}"
traefik.enable: "true"
traefik.http.routers.ldap_manager.rule: Host(`auth.marcpartensky.com`)
traefik.http.routers.ldap_manager.entrypoints: websecure
traefik.http.routers.ldap_manager.tls.certresolver: tls
traefik.http.services.ldap_manager.loadbalancer.server.port: 80
networks:
ldap:
-7
View File
@@ -20,13 +20,6 @@ services:
- ldap:/var/lib/ldap
- ldap_slapd:/etc/ldap/slapd.d
backup:
image: osixia/openldap-backup:1.5.0
environment:
LDAP_BACKUP_CONFIG_CRON_EXP: "0 5 * * *"
LDAP_BACKUP_DATA_CRON_EXP: "0 5 * * *"
volumes:
ldap:
ldap_slapd:
-16
View File
@@ -1,16 +0,0 @@
version: "3.9"
services:
libreswan:
image: ibotty/ipsec-libreswan
restart: unless-stopped
privileged: true
environment:
HOST: /host
IMAGE: ipsec-libreswan
NAME: libreswan
entrypoint: /bin/sh
command: /bin/install.sh
volumes:
- libreswan:/host
volumes:
libreswan:
-29
View File
@@ -1,29 +0,0 @@
version: "3.9"
services:
logseq:
image: ghcr.io/logseq/logseq-webapp:latest
# volumes:
networks:
- traefik
- postgres
labels:
traefik.enable: "true"
# traefik.http.routers.focalboard.rule: >
# Host(`board.marcpartensky.com`) || Host(`board.marcpartensky.fr`)
traefik.http.routers.logseq.service: logseq
traefik.http.routers.logseq.rule: >
Host(`logseq.marcpartensky.com`)
traefik.http.routers.logseq.tls: true
traefik.http.routers.logseq.entrypoints: web-secure
traefik.http.routers.logseq.tls.certresolver: default
traefik.http.services.logseq.loadbalancer.server.port: 80
# traefik.http.routers.focalboard.middlewares: ldap_auth
volumes:
data:
pack:
networks:
postgres:
external: true
traefik:
external: true
+382 -427
View File
File diff suppressed because it is too large Load Diff
+1 -20
View File
@@ -8,20 +8,11 @@ services:
# SYNAPSE_REPORT_STATS: "no"
# SYNAPSE_SERVER_NAME: matrix.marcpartensky.com
# SYNAPSE_ENABLE_REGISTRATION: "true"
environment:
SYNAPSE_CONFIG_PATH: /data/homeserver.yml
volumes:
- ../data/matrix:/data
# - matrix:/data
networks:
- caddy
- postgres
healthcheck:
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
interval: 15s
timeout: 5s
retries: 3
start_period: 5s
- caddy
labels:
caddy: matrix.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8008}}"
@@ -30,17 +21,7 @@ services:
traefik.http.routers.matrix.entrypoints: websecure
traefik.http.routers.matrix.tls.certresolver: tls
traefik.http.services.matrix.loadbalancer.server.port: 8008
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.matrix.rule: >
Host(`matrix.marcpartensky.com`) || Host(`matrix.marcpartensky.fr`)
traefik.http.routers.matrix.entrypoints: websecure
traefik.http.routers.matrix.tls.certresolver: tls
traefik.http.services.matrix.loadbalancer.server.port: 8008
networks:
postgres:
external: true
caddy:
external: true
+3 -3
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
backup:
backups:
image: itzg/mc-backup
environment:
BACKUP_INTERVAL: "1d"
@@ -9,7 +9,7 @@ services:
SERVE_PORT: 25565
RCON_HOST: minecraft
RCON_PORT: 25575
PAUSE_IF_NO_PLAYER: "true"
PAUSE_IF_NO_PLAYER: true
PLAYERS_ONLINE_CHECK_INTERVAL: 1h
TZ: Europe/Paris
DEST_DIR: /backups
@@ -18,6 +18,6 @@ services:
- /srv/minecraft/champi:/data:ro
# use a host attached directory so that it in turn can be backed up
# to external/cloud storage
- /srv/mcbackups:/backups
- ./mc-backups:/backups
# share network namespace with server to simplify rcon access
# network_mode: "service:mc"
+4 -12
View File
@@ -20,18 +20,10 @@ services:
caddy.reverse_proxy: "{{upstreams 8080}}"
authorize.with: marc
traefik.enable: "true"
traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.com`)
traefik.http.routers.mcmyadmin.entrypoints: websecure
traefik.http.routers.mcmyadmin.tls.certresolver: tls
traefik.http.services.mcmyadmin.loadbalancer.server.port: 8080
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.com`)
traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.fr`)
traefik.http.routers.mcmyadmin.entrypoints: websecure
traefik.http.routers.mcmyadmin.tls.certresolver: tls
traefik.http.services.mcmyadmin.loadbalancer.server.port: 8080
traefik.http.routers.minecraft.rule: Host(`mcadmin.marcpartensky.com`)
traefik.http.routers.minecraft.entrypoints: websecure
traefik.http.routers.minecraft.tls.certresolver: tls
traefik.http.services.minecraft.loadbalancer.server.port: 8080
volumes:
mcmyadmin:
+1 -24
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
server:
minecraft_champi:
image: itzg/minecraft-server
restart: unless-stopped
environment:
@@ -29,29 +29,6 @@ services:
networks:
- minecraft
backup:
image: itzg/mc-backup
environment:
BACKUP_INTERVAL: "1d"
# instead of network_mode below, could declare RCON_HOST
SERVE_PORT: 25565
RCON_HOST: server
RCON_PORT: 25575
PAUSE_IF_NO_PLAYER: "true"
PLAYERS_ONLINE_CHECK_INTERVAL: 1h
TZ: Europe/Paris
DEST_DIR: /backups
networks:
- minecraft
volumes:
# mount the same volume used by server, but read-only
- /srv/minecraft/champi:/data:ro
# use a host attached directory so that it in turn can be backed up
# to external/cloud storage
- /srv/mcbackups:/backups
# share network namespace with server to simplify rcon access
# network_mode: "service:mc"
# volumes:
# minecraft:
-33
View File
@@ -1,33 +0,0 @@
version: "3.9"
services:
minidlna:
image: geekduck/minidlna
volumes:
- music:/opt/Music
- videos:/opt/Videos
- pictures:/opt/Pictures
- db:/var/cache/minidlna
# - ../data/minidlna/minidlna.conf:/etc/minidlna.conf
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.minidlna.loadbalancer.server.port: 8200
traefik.http.routers.minidlna.rule: Host(`minidlna.marcpartensky.fr`)
# traefik.http.routers.minidlna.rule: >
# Host(`minidlna.marcpartensky.com`) || Host(`minidlna.marcpartensky.fr`)
traefik.http.routers.minidlna.entrypoints: websecure
# traefik.http.routers.minidlna.tls.certresolver: tls
traefik.http.routers.minidlna.tls.certresolver: cloudflare
# traefik.http.routers.minidlna.middlewares: ldap_auth
volumes:
music:
videos:
pictures:
db:
networks:
caddy:
external: true
-45
View File
@@ -1,45 +0,0 @@
version: "3.9"
services:
master:
image: efaviere/mobydock-master:lastest
# image: marcpartensky/mobidock-master:latest
# depends_on:
# - db
env_file:
- ../data/secrets/mobydock.env
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- caddy
- postgres
deploy:
labels:
traefik.enable: "true"
traefik.http.services.svc_mobydock.loadbalancer.server.port: 8080
traefik.http.routers.mobydock.service: svc_mobydock
traefik.http.routers.mobydock.rule: >
Host(`mobydock.marcpartensky.com`) || Host(`mobydock.marcpartensky.fr`)
traefik.http.routers.mobydock.entrypoints: websecure
# traefik.http.routers.dockerdash.middlewares: ldap_auth
traefik.http.services.svc_mobydockwss.loadbalancer.server.port: 8000
traefik.http.routers.mobydockwss.service: svc_mobydockwss
traefik.http.routers.mobydockwss.rule: >
Host(`wss.mobydock.marcpartensky.com`) || Host(`wss.mobydock.marcpartensky.fr`)
traefik.http.routers.mobydockwss.entrypoints: websecure
worker:
image: efaviere/mobidock-worker:latest
environment:
# MASTER_HOST: "https://mobydock.marcpartensky.com:8000"
MASTER_HOST: "https://wss.mobydock.marcpartensky.com"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
discord:
postgres:
external: true
caddy:
external: true
+1 -12
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
miner:
monero_miner:
image: giansalex/monero-miner
restart: unless-stopped
env_file:
@@ -11,14 +11,3 @@ services:
# -u $WALLET \
# -k \
# --cpu-priority=2
deploy:
resources:
# reservations:
# cpus: "2"
# # memory: "512M"
# memory: "5G"
limits:
cpus: "4"
# memory: "512M"
memory: "5G"
-33
View File
@@ -1,33 +0,0 @@
version: "3.9"
services:
honeygain:
image: marcpartensky/honeygain
env_file:
- ../data/secrets/honeygain.env
repocket:
image: repocket/repocket
env_file:
- ../data/secrets/repocket.env
traffmonetizer:
image: marcpartensky/traffmonetizer
env_file:
- ../data/secrets/traffmonetizer.env
packetstream:
image: packetstream/psclient:latest
environment:
CID: 4bYb
peer2profit:
image: peer2profit/peer2profit_x86_64:latest
environment:
P2P_EMAIL: marc@marcpartensky.com
# earnapp:
# image: fazalfarhan01/earnapp:lite
# volumes:
# - earnapp:/etc/earnapp
# environment:
# EARNAPP_UUID: $EARNAPP_DEVICE_ID
+1 -16
View File
@@ -5,8 +5,6 @@ services:
image: mongo
restart: unless-stopped
volumes:
- ../data/mongo/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ../data/mongo/config:/etc/mongo
- mongo:/data/db
networks:
- mongo
@@ -17,7 +15,7 @@ services:
# healthcheck:
# test: CMD echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
express:
mongo_express:
image: mongo-express
restart: unless-stopped
environment:
@@ -37,25 +35,12 @@ services:
traefik.http.routers.mongo.entrypoints: websecure
traefik.http.routers.mongo.tls.certresolver: tls
traefik.http.services.mongo.loadbalancer.server.port: 8081
traefik.http.routers.duplicati.middlewares: ldap_auth
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.mongo.rule: Host(`mongo.marcpartensky.com`)
traefik.http.routers.mongo.rule: >
Host(`mongo.marcpartensky.fr`) ||
Host(`mongo.marcpartensky.com`)
traefik.http.routers.mongo.entrypoints: websecure
traefik.http.routers.mongo.tls.certresolver: tls
traefik.http.services.mongo.loadbalancer.server.port: 8081
traefik.http.routers.mongo.middlewares: ldap_auth
volumes:
mongo:
networks:
mongo:
external: true
caddy:
external: true
attachable: true
-11
View File
@@ -1,11 +0,0 @@
version: "3.9"
services:
mysql:
image: mysql
restart: unless-stopped
networks:
- mysql
volumes:
- mysql:/var/lib/mysql
env_file:
- ../data/secrets/mysql.env
+17 -32
View File
@@ -5,46 +5,31 @@ services:
image: nextcloud
restart: unless-stopped
volumes:
- /home/marc/srv/nextcloud:/var/www/html
# - ../data/nextcloud/config:/var/www/html/config
# - ../data/nextcloud/version.php:/var/www/html/version.php
# - /srv/nextcloud/data:/var/www/html/data
# - /srv/nextcloud/themes:/var/www/html/themes
# - /srv/nextcloud/apps:/var/www/html/custom_apps
# - ../data/nextcloud/test:/test
#
ports:
- 8006:80
- nextcloud:/var/www/html
# - nextcloud:/var/www/html/data
# - nextcloud_theme:/var/www/html/themes/<YOUR_CUSTOM_THEME>
# - nextcloud_apps:/var/www/html/custom_apps
# - nextcloud_config:/var/www/html/config
env_file:
- ../data/secrets/nextcloud.env
networks:
# - caddy
- postgres
# - redis
# - ldap
- caddy
- nextcloud
# depends_on:
# - nextcloud_mariadb
# labels:
# # caddy: cloud.marcpartensky.com
# # caddy.reverse_proxy: "{{upstreams http 80}}"
# traefik.enable: "true"
# traefik.http.routers.nextcloud.rule: >
# Host(`cloud.marcpartensky.com`)
# traefik.http.routers.nextcloud.entrypoints: web
# # traefik.http.routers.nextcloud.tls.certresolver: tls
# traefik.http.services.nextcloud.loadbalancer.server.port: 80
labels:
caddy: cloud.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 80}}"
traefik.enable: "true"
traefik.http.routers.nextcloud.rule: Host(`cloud.marcpartensky.com`)
traefik.http.routers.nextcloud.entrypoints: websecure
traefik.http.routers.nextcloud.tls.certresolver: tls
traefik.http.services.nextcloud.loadbalancer.server.port: 80
volumes:
data:
config:
themes:
apps:
nextcloud:
networks:
ldap:
external: true
nextcloud:
caddy:
external: true
postgres:
external: true
-5
View File
@@ -1,5 +0,0 @@
version: "3.9"
services:
nixos:
image: nixos/nix
restart: unless-stopped
-105
View File
@@ -1,105 +0,0 @@
version: "3.9"
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: unless-stopped
env_file:
- ../data/secrets/numeris.env
links:
- mysql:db
networks:
- caddy
- numeris
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.phpmyadmin.rule: Host(`phpmyadmin.numeris.marcpartensky.fr`)
traefik.http.routers.phpmyadmin.entrypoints: websecure
traefik.http.routers.phpmyadmin.tls.certresolver: tls
traefik.http.services.phpmyadmin.loadbalancer.server.port: 80
traefik.http.routers.phpmyadmin.middlewares: ldap_auth
mysql:
image: mysql:5.7
restart: unless-stopped
networks:
- numeris
volumes:
- numeris:/var/lib/mysql
env_file:
- ../data/secrets/numeris.env
back:
image: numerisisep/numeris-back:prod
networks:
- caddy
- numeris
env_file:
- ../data/secrets/numeris.env
# volumes:
# - .env:/home/numeris/.env
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.com`)
traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.fr`)
traefik.http.routers.back.entrypoints: websecure
traefik.http.routers.back.tls.certresolver: tls
traefik.http.services.back.loadbalancer.server.port: 80
front:
image: numerisisep/numeris-front:prod
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.front.rule: Host(`numeris.marcpartensky.com`)
traefik.http.routers.front.rule: Host(`numeris.marcpartensky.fr`)
traefik.http.routers.front.entrypoints: websecure
traefik.http.routers.front.tls.certresolver: tls
traefik.http.services.front.loadbalancer.server.port: 80
traefik.http.routers.front.middlewares: ldap_auth
back-staging:
image: numerisisep/numeris-back:staging
networks:
- caddy
- numeris
env_file:
- ../data/secrets/numeris.env
# volumes:
# - .env:/home/numeris/.env
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.com`)
traefik.http.routers.back.rule: Host(`staging.api.numeris.marcpartensky.fr`)
traefik.http.routers.back.entrypoints: websecure
traefik.http.routers.back.tls.certresolver: tls
traefik.http.services.back.loadbalancer.server.port: 80
front-staging:
image: numerisisep/numeris-front:staging
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.front.rule: Host(`numeris.marcpartensky.com`)
traefik.http.routers.front.rule: Host(`staging.numeris.marcpartensky.fr`)
traefik.http.routers.front.entrypoints: websecure
traefik.http.routers.front.tls.certresolver: tls
traefik.http.services.front.loadbalancer.server.port: 80
traefik.http.routers.front.middlewares: ldap_auth
networks:
numeris:
caddy:
external: true
volumes:
numeris:
caddy_data:
mysql:
-28
View File
@@ -1,28 +0,0 @@
version: "3.9"
services:
openvpn:
image: ghcr.io/linuxserver/openvpn-as
cap_add:
- NET_ADMIN
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Paris
# INTERFACE: eth0 #optional
volumes:
- config:/config
ports:
# - 943:943 # web
# - 9443:9443
- 1194:1194/udp
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.openvpn.rule: >
Host(`vpn.marcpartensky.fr`)
traefik.http.routers.openvpn.entrypoints: websecure
traefik.http.routers.openvpn.tls.certresolver: tls
traefik.http.services.openvpn.loadbalancer.server.port: 943
volumes:
config:
-16
View File
@@ -1,16 +0,0 @@
version: "3.9"
services:
openvpn_client:
image: dperson/openvpn-client
device: /dev/net/tun
volumes:
- ../data/openvpn_client:/vpn
- 'vpn.server.name;username;password'
cap-add:
- NET_ADMIN
networks:
- vpn
# sudo cp /path/to/vpn.crt /some/path/vpn-ca.crt
networks:
vpn:
external: true
-19
View File
@@ -1,19 +0,0 @@
version: "3.9"
services:
openvpn_client2:
image: frauhottelmann/openvpn-client
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
command: --config /vpn/client.ovpn --askpass /vpn/client.pwd --auth-nocache --script-security 3 --data-ciphers AES-128-CBC
volumes:
- ../data/openvpn_client2:/vpn
networks:
- vpn
# network_mode: "bridge"
networks:
vpn:
external: true
-10
View File
@@ -1,10 +0,0 @@
version: "3.9"
services:
openvpn-client:
image: ghcr.io/wfg/openvpn-client
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
volumes:
- ../data/openvpn_client3:/data/vpn
-20
View File
@@ -1,20 +0,0 @@
version: "3.9"
services:
openvpnclient:
image: haugene/transmission-openvpn
cap-add:
- NET_ADMIN
ports:
- 9091:9091
environment:
OPENVPN_PROVIDER: custom
OPENVPN_CONFIG: france
OPENVPN_USERNAME: user
OPENVPN_PASSWORD: pass
LOCAL_NETWORK: 192.168.0.0/16
volumes:
- data:/data
- ../data/openvpnclient4/:/config
volumes:
data:
-26
View File
@@ -1,26 +0,0 @@
version: "3.9"
services:
owncloud:
image: owncloud
networks:
- caddy
- postgres
volumes:
- data:/var/www/html/data
deploy:
labels:
traefik.enable: "true"
traefik.http.services.owncloud.loadbalancer.server.port: 80
traefik.http.routers.owncloud.rule: >
Host(`owncloud.marcpartensky.com`) || Host(`owncloud.marcpartensky.fr`)
traefik.http.routers.owncloud.entrypoints: websecure
traefik.http.routers.owncloud.tls.certresolver: tls
volumes:
data:
networks:
caddy:
external: true
postgres:
external: true
-7
View File
@@ -26,13 +26,6 @@ services:
traefik.http.routers.oxivia.entrypoints: websecure
traefik.http.routers.oxivia.tls.certresolver: tls
traefik.http.services.oxivia.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.oxivia.rule: Host(`oxivia.business.marcpartensky.com`)
traefik.http.routers.oxivia.entrypoints: websecure
traefik.http.routers.oxivia.tls.certresolver: tls
traefik.http.services.oxivia.loadbalancer.server.port: 80
networks:
oxivia:
-11
View File
@@ -1,11 +0,0 @@
version: "3.9"
services:
client:
image: packetstream/psclient:latest
environment:
CID: 4bYb
# watchtower:
# image: containrrr/watchtower
# command: --cleanup --include-stopped --revive-stopped --interval 60 ${_COMPOSE_PROJECT_NAME}_Packetstream_PsClient_${_COMPOSE_PROJECT_STACK_ID}
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
+10 -10
View File
@@ -9,18 +9,18 @@ services:
- ../data/secrets/pandoc.env
volumes:
- pandoc:/app/files
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.pandoc.rule: Host(`pandoc.marcpartensky.com`)
traefik.http.routers.pandoc.rule: >
Host(`pandoc.marcpartensky.com`) ||
Host(`pandoc.marcpartensky.fr`)
traefik.http.routers.pandoc.entrypoints: websecure
traefik.http.routers.pandoc.tls.certresolver: tls
traefik.http.services.pandoc.loadbalancer.server.port: 80
labels:
caddy: pandoc.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.pandoc.rule: Host(`pandoc.marcpartensky.com`)
traefik.http.routers.pandoc.entrypoints: websecure
traefik.http.routers.pandoc.tls.certresolver: tls
traefik.http.services.pandoc.loadbalancer.server.port: 80
networks:
- caddy
depends_on:
- caddy
volumes:
pandoc:
-7
View File
@@ -1,7 +0,0 @@
version: "3.9"
services:
pawns:
image: marcpartensky/pawns
env_file:
- ../data/secrets/pawns.env
-6
View File
@@ -1,6 +0,0 @@
version: "3.9"
services:
peer2profit:
image: peer2profit/peer2profit_x86_64:latest
environment:
P2P_EMAIL: marc@marcpartensky.com
+37 -53
View File
@@ -1,79 +1,63 @@
version: "3.9"
version: "3.3"
services:
peertube:
image: chocobozzz/peertube:production-bullseye
restart: unless-stopped
networks:
- caddy
env_file:
- ../data/secrets/peertube.env
ports:
- "1935:1935" # If you don't want to use the live feature, you can comment this line
# - "9000:9000" # If you provide your own webserver and reverse-proxy, otherwise not suitable for production
volumes:
- assets:/app/client/dist
- data:/data
- peertube_assets:/app/client/dist
- peertube:/data
- ../data/peertube:/config
networks:
- peertube
- caddy
- postgres
- redis
# depends_on:
# - peertube_postgres
# - peertube_redis
# - peertube_postfix
depends_on:
- peertube_postgres
- peertube_redis
- peertube_postfix
labels:
caddy: peertube.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.peertube.rule: Host(`peertube.marcpartensky.com`)
traefik.http.routers.peertube.entrypoints: websecure
traefik.http.routers.peertube.tls.certresolver: tls
traefik.http.services.peertube.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.peertube.rule: Host(`peertube.marcpartensky.fr`)
traefik.http.routers.peertube.entrypoints: websecure
traefik.http.routers.peertube.tls.certresolver: tls
traefik.http.services.peertube.loadbalancer.server.port: 80
traefik.http.routers.gitea.rule: Host(`peertube.marcpartensky.com`)
traefik.http.routers.gitea.entrypoints: websecure
traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.services.gitea.loadbalancer.server.port: 80
# peertube_postgres:
# image: postgres:13-alpine
# restart: unless-stopped
# env_file:
# - ../data/secrets/peertube.env
# volumes:
# - peertube_postgres:/var/lib/postgresql/data
peertube_postgres:
image: postgres:13-alpine
restart: unless-stopped
env_file:
- ../data/secrets/peertube.env
volumes:
- peertube_postgres:/var/lib/postgresql/data
# peertube_redis:
# image: redis:6-alpine
# restart: unless-stopped
# volumes:
# - peertube_redis:/data
peertube_redis:
image: redis:6-alpine
restart: unless-stopped
volumes:
- peertube_redis:/data
# postfix:
# image: mwader/postfix-relay
# restart: unless-stopped
# networks:
# - peertube
# env_file:
# - .env
# volumes:
# - postfix:/etc/opendkim/keys
peertube_postfix:
image: mwader/postfix-relay
restart: unless-stopped
env_file:
- .env
volumes:
- peertube_postfix:/etc/opendkim/keys
networks:
peertube:
postgres:
external: true
redis:
external: true
caddy:
external: true
volumes:
data:
assets:
postgres:
postfix:
peertube:
peertube_assets:
peertube_postgres:
peertube_redis:
peertube_postfix:
-16
View File
@@ -1,16 +0,0 @@
version: "3.9"
services:
pg_backup:
image: kartoza/pg-backup:14-3.1
env_file:
- ../data/secrets/pg_backup.env
# environment:
# POSTGRES_MAJOR_VERSION: 14
networks:
- postgres
volumes:
- /srv/pg-backup:/backups
networks:
postgres:
external: true
-47
View File
@@ -1,47 +0,0 @@
version: "3.9"
services:
pgadmin:
image: dpage/pgadmin4
restart: unless-stopped
env_file:
- ../data/secrets/pgadmin.env
environment:
PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION: "True"
# PGADMIN_CONFIG_LOGIN_BANNER: "Authorised users only!"
PGADMIN_CONFIG_CONSOLE_LOG_LEVEL: 10
networks:
- postgres
- caddy
volumes:
- /srv/pgadmin:/usr/local/
labels:
caddy: pgadmin.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
# caddy.reverse_proxy.header_up.Host: "{upstream_hostport}" # redundant
# caddy.reverse_proxy.header_up.X-Real-IP: "{host}"
# caddy.reverse_proxy.header_up.X-Forwarded-For: "{host}" # redundant
# caddy.basicauth: /* bcrypt
# caddy.basicauth.admin: JDJhJDEyJDVRUXdqQllCR2dCSEZ0ZUlaVUZTRE95WXpROFdUcFdXSm4wVGE2TmE4cEkxNHc5Si4venJxCg==
traefik.enable: "true"
traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.com`)
traefik.http.routers.pgadmin.entrypoints: websecure
traefik.http.routers.pgadmin.tls.certresolver: tls
traefik.http.services.pgadmin.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.com`)
traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.fr`)
traefik.http.routers.pgadmin.entrypoints: websecure
traefik.http.routers.pgadmin.tls.certresolver: tls
traefik.http.services.pgadmin.loadbalancer.server.port: 80
volumes:
postgres:
networks:
postgres:
external: true
caddy:
external: true
-40
View File
@@ -1,40 +0,0 @@
version: "3.9"
services:
pgweb:
image: marcpartensky/pgweb
restart: unless-stopped
env_file:
- ../data/secrets/pgweb.env
networks:
- postgres
- caddy
# depends_on:
# - postgres
labels:
caddy: pgweb.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8081}}"
# caddy.reverse_proxy.header_up.Host: "{upstream_hostport}" # redundant
# caddy.reverse_proxy.header_up.X-Real-IP: "{host}"
# caddy.reverse_proxy.header_up.X-Forwarded-For: "{host}" # redundant
caddy.basicauth: /* bcrypt
caddy.basicauth.admin: JDJhJDEyJDVRUXdqQllCR2dCSEZ0ZUlaVUZTRE95WXpROFdUcFdXSm4wVGE2TmE4cEkxNHc5Si4venJxCg==
traefik.enable: "true"
traefik.http.routers.pgweb.rule: Host(`pgweb.marcpartensky.com`)
traefik.http.routers.pgweb.entrypoints: websecure
traefik.http.routers.pgweb.tls.certresolver: tls
traefik.http.services.pgweb.loadbalancer.server.port: 8081
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.pgweb.rule: Host(`pgweb.marcpartensky.com`)
traefik.http.routers.pgweb.entrypoints: websecure
traefik.http.routers.pgweb.tls.certresolver: tls
traefik.http.services.pgweb.loadbalancer.server.port: 8081
# ldapAuth Register Middleware ====================================================
traefik.http.routers.pgweb.middlewares: ldap_auth
networks:
postgres:
external: true
caddy:
external: true
+24 -72
View File
@@ -1,85 +1,37 @@
version: "3.9"
services:
agent:
image: portainer/agent:2.18.2
portainer:
image: portainer/portainer-ce
restart: unless-stopped
environment:
VIRTUAL_HOST: docker.marcpartensky.com
VIRTUAL_PORT: 9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- portainer
# deploy:
# mode: global
# placement:
# constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:2.18.2
command: -H tcp://agent:9001 --tlsskipverify
# ports:
# - "9443:9443"
# - "9000:9000"
# - "8000:8000"
- portainer:/data
networks:
- caddy
- portainer
volumes:
- data:/data
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
traefik.enable: "true"
traefik.http.routers.portainer.rule: >
Host(`docker.marcpartensky.fr`) && Host(`docker.marcpartensky.com`)
traefik.http.routers.portainer.entrypoints: websecure
# traefik.http.routers.portainer.tls.certresolver: tls
traefik.http.routers.portainer.tls.certresolver: cloudflare
traefik.http.services.portainer.loadbalancer.server.port: 9000
command:
- --logo
- https://marcpartensky.com/static/home/assets/img/white-orchid.svg
# healthcheck:
# test: ["CMD", "curl", "-f", "http://localhost:9000"]
# test: ["CMD", "portainer", "--healthcheck"]
depends_on:
- caddy
labels:
caddy: docker.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9000}}"
traefik.enable: "true"
traefik.http.routers.portainer.rule: Host(`docker.marcpartensky.com`)
traefik.http.routers.portainer.entrypoints: websecure
traefik.http.routers.portainer.tls.certresolver: tls
traefik.http.services.portainer.loadbalancer.server.port: 9000
# portainer:
# image: portainer/portainer-ce
# restart: unless-stopped
# # environment:
# # VIRTUAL_HOST: docker.marcpartensky.com
# # VIRTUAL_PORT: 9000
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# - portainer:/data
# networks:
# - caddy
# command:
# - --logo
# - https://marcpartensky.com/static/home/assets/img/white-orchid.svg
# # healthcheck:
# # test: ["CMD", "curl", "-f", "http://localhost:9000"]
# # test: ["CMD", "portainer", "--healthcheck"]
# depends_on:
# - caddy
# labels:
# caddy: docker.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 9000}}"
# traefik.enable: "true"
# traefik.http.routers.portainer.rule: Host(`docker.marcpartensky.com`)
# traefik.http.routers.portainer.entrypoints: websecure
# traefik.http.routers.portainer.tls.certresolver: tls
# traefik.http.services.portainer.loadbalancer.server.port: 9000
# deploy:
# labels:
# traefik.enable: "true"
# traefik.http.routers.portainer.rule: >
# Host(`docker.marcpartensky.fr`) && Host(`docker.marcpartensky.com`)
# traefik.http.routers.portainer.entrypoints: websecure
# traefik.http.routers.portainer.tls.certresolver: tls
# traefik.http.services.portainer.loadbalancer.server.port: 9000
#
volumes:
# portainer:
data:
portainer:
networks:
portainer:
caddy:
external: true
-79
View File
@@ -1,79 +0,0 @@
version: "3.9"
services:
postgres:
image: postgres:14
restart: unless-stopped
# user: postgres:postgres
# user: "966:966"
# user: 1000:1000
ports:
- target: 5432
published: 5432
mode: host
networks:
- postgres
volumes:
- ../data/postgres:/docker-entrypoint-initdb.d
- /home/marc/srv/postgres:/var/lib/postgresql/data
# - ../data/postgres/server.crt:/var/lib/postgresql/server.crt
# - ../data/postgres/server.key:/var/lib/postgresql/server.key
env_file:
- ../data/secrets/postgres.env
command: |
postgres
-c log_statement=all
-c log_destination=stderr
# -c ssl=on
# -c ssl_cert_file=/var/lib/postgresql/server.crt
# -c ssl_key_file=/var/lib/postgresql/server.key
# networks:
# - postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -q || exit 1"]
interval: 10s
timeout: 3s
retries: 3
pgagent:
image: chiavegatto/postgres-pgagent
entrypoint: /bin/sh -c
"/tmp/wait-for-it.sh postgres:5432 --timeout=30 &&
psql -U postgres -h postgres -p 5432 -d postgres -c 'CREATE EXTENSION IF NOT EXISTS pgagent;' &&
pgagent -f hostaddr=postgres dbname=postgres user=postgres port=5432"
environment:
TIMEZONE: Europe/Paris
env_file:
- ../data/secrets/postgres.env
networks:
- postgres
backup:
image: kartoza/pg-backup:14-3.1
env_file:
- ../data/secrets/pg_backup.env
# networks:
# - postgres
volumes:
- /srv/pg-backup:/backups
pgbackups:
image: prodrigestivill/postgres-backup-local
restart: unless-stopped
# user: postgres:postgres
volumes:
- /srv/pgbackups:/backups
# links:
# - postgres
# depends_on:
# - postgres
# networks:
# - postgres
env_file:
- ../data/secrets/pgbackups.env
volumes:
postgres:
networks:
postgres:
external: true
+14 -23
View File
@@ -6,14 +6,13 @@ services:
restart: unless-stopped
ports:
- "1194-1195:1194-1195/udp"
# depends_on:
# - pritunl_mongo
depends_on:
- pritunl_mongo
environment:
REVERSE_PROXY: "true"
TZ: Europe/Paris
MONGODB_URI: mongodb://mongo:27017/pritunl
MONGODB_URI: mongodb://pritunl_mongo:27017/pritunl
PRITUNL_DEBUG: "true"
# WIREGUARD: true
privileged: true
cap_add:
- SYS_ADMIN
@@ -26,31 +25,23 @@ services:
# volumes:
# - /etc/localtime:/etc/localtime:ro
networks:
- mongo
- caddy
- pritunl
deploy:
labels:
caddy: vpn.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 9700}}"
traefik.enable: "true"
traefik.http.routers.pritunl.rule: >
Host(`vpn.marcpartensky.fr`) ||
Host(`vpn.marcpartensky.com`)
traefik.http.routers.pritunl.entrypoints: websecure
traefik.http.routers.pritunl.tls.certresolver: tls
traefik.http.services.pritunl.loadbalancer.server.port: 9700
labels:
caddy: vpn.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 9700}}"
traefik.enable: "true"
traefik.http.routers.pritunl.rule: Host(`vpn.marcpartensky.com`)
traefik.http.routers.pritunl.entrypoints: websecure
traefik.http.routers.pritunl.tls.certresolver: tls
traefik.http.services.pritunl.loadbalancer.server.port: 9700
networks:
caddy:
external: true
mongo:
external: true
pritunl:
external: true
# internal: true
# driver: bridge
# ipam:
# config:
# - subnet: 172.177.0.0/16
# - subnet: 10.177.0.0/16
ipam:
config:
- subnet: 172.177.0.0/16

Some files were not shown because too many files have changed in this diff Show More