Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e288a394f |
@@ -1,4 +1,3 @@
|
||||
liberapay: marcpartensky
|
||||
patreon: marcpartensky
|
||||
github: marcpartensky
|
||||
custom:
|
||||
|
||||
@@ -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
-11
@@ -10,18 +10,8 @@ data/authelia
|
||||
data/mx-puppet-discord
|
||||
data/matrix
|
||||
data/heimdall
|
||||
data/traefik
|
||||
data/pihole/etc-pihole
|
||||
data/pxe
|
||||
data/postgres
|
||||
data/wireguard
|
||||
data/vaultwarden
|
||||
data/filebrowser
|
||||
data/focalboard
|
||||
data/openvpn_*
|
||||
data/mailcow
|
||||
data/dockvpn
|
||||
data/hydra
|
||||
data.tar.gz
|
||||
data.7z
|
||||
data.7z.gpg
|
||||
services/template.yml
|
||||
|
||||
@@ -9,16 +9,8 @@ mswarm: merge
|
||||
down:
|
||||
docker stack rm vps
|
||||
export:
|
||||
7z a -p data.7z data
|
||||
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
|
||||
tar cvzf data.tgz data
|
||||
gpg --encrypt --recipient 'marc.partensky@gmail.com' data.tgz
|
||||
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 --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
|
||||
node:
|
||||
docker node update --label-add net=web contabo
|
||||
docker node update --label-add net=none tower
|
||||
network:
|
||||
docker network create --driver overlay --attachable caddy
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
[](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
|
||||
|
||||
# Docker
|
||||
[](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 -->
|
||||
|
||||
@@ -1,164 +0,0 @@
|
||||
bind_host: 0.0.0.0
|
||||
bind_port: 3000
|
||||
beta_bind_port: 0
|
||||
users:
|
||||
- name: marc
|
||||
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
|
||||
auth_attempts: 5
|
||||
block_auth_min: 15
|
||||
http_proxy: ""
|
||||
language: ""
|
||||
debug_pprof: false
|
||||
web_session_ttl: 720
|
||||
dns:
|
||||
bind_hosts:
|
||||
- 0.0.0.0
|
||||
port: 53
|
||||
statistics_interval: 1
|
||||
querylog_enabled: true
|
||||
querylog_file_enabled: true
|
||||
querylog_interval: 2160h
|
||||
querylog_size_memory: 1000
|
||||
anonymize_client_ip: false
|
||||
protection_enabled: true
|
||||
blocking_mode: default
|
||||
blocking_ipv4: ""
|
||||
blocking_ipv6: ""
|
||||
blocked_response_ttl: 10
|
||||
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: false
|
||||
max_goroutines: 300
|
||||
handle_ddr: true
|
||||
ipset: []
|
||||
ipset_file: ""
|
||||
filtering_enabled: true
|
||||
filters_update_interval: 24
|
||||
parental_enabled: false
|
||||
safesearch_enabled: false
|
||||
safebrowsing_enabled: false
|
||||
safebrowsing_cache_size: 1048576
|
||||
safesearch_cache_size: 1048576
|
||||
parental_cache_size: 1048576
|
||||
cache_time: 30
|
||||
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: []
|
||||
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
|
||||
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: 14
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
http:
|
||||
middlewares:
|
||||
basic:
|
||||
basicAuth:
|
||||
users:
|
||||
- test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/
|
||||
# usersFile: etc/traefik/.htpasswd
|
||||
@@ -1,97 +0,0 @@
|
||||
# https://doc.traefik.io/traefik/routing/overview/
|
||||
global:
|
||||
checkNewVersion: true
|
||||
sendAnonymousUsage: false
|
||||
api:
|
||||
# insecure: false # = secure
|
||||
insecure: true
|
||||
dashboard: true
|
||||
debug: true
|
||||
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
+7
-3
@@ -1,8 +1,9 @@
|
||||
traefik
|
||||
caddy
|
||||
website
|
||||
valentin
|
||||
arch
|
||||
open-web-calendar
|
||||
adguard
|
||||
oxivia
|
||||
wordpress-oxivia
|
||||
servant
|
||||
discord-bot
|
||||
ia
|
||||
@@ -10,11 +11,14 @@ docker-api
|
||||
ialab
|
||||
portainer
|
||||
authentik
|
||||
todolist
|
||||
nextcloud
|
||||
jenkins
|
||||
seafile
|
||||
matrix
|
||||
etherpad
|
||||
monero-miner
|
||||
monero-node
|
||||
pritunl
|
||||
pritunl-mongo
|
||||
fail2ban
|
||||
|
||||
@@ -1,49 +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
|
||||
labels:
|
||||
caddy: adguard.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 3000}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.adguard.rule: Host(`adguard.marcpartensky.com`)
|
||||
traefik.http.routers.adguard.entrypoints: websecure
|
||||
traefik.http.routers.adguard.tls.certresolver: tls
|
||||
traefik.http.services.adguard.loadbalancer.server.port: 3000
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.adguard.rule: Host(`adguard.marcpartensky.com`)
|
||||
traefik.http.routers.adguard.entrypoints: websecure
|
||||
traefik.http.routers.adguard.tls.certresolver: tls
|
||||
traefik.http.services.adguard.loadbalancer.server.port: 3000
|
||||
traefik.http.routers.adguard.middlewares: ldap_auth
|
||||
|
||||
volumes:
|
||||
adguard:
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
@@ -13,13 +13,6 @@ services:
|
||||
traefik.http.routers.agenda_militant.entrypoints: websecure
|
||||
traefik.http.routers.agenda_militant.tls.certresolver: tls
|
||||
traefik.http.services.agenda_militant.loadbalancer.server.port: 8080
|
||||
deploy:
|
||||
labels:
|
||||
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
@@ -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
@@ -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:
|
||||
|
||||
+12
-12
@@ -76,18 +76,18 @@ services:
|
||||
networks:
|
||||
- authentik
|
||||
|
||||
# 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
|
||||
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
|
||||
|
||||
volumes:
|
||||
authentik_postgres:
|
||||
|
||||
@@ -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:
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
chatgpt:
|
||||
image: wongsaang/chatgpt-ui:latest
|
||||
ports:
|
||||
- "8000:80"
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -1,34 +0,0 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
bot:
|
||||
image: marcpartensky/discord-bot
|
||||
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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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
|
||||
@@ -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
|
||||
+10
-15
@@ -19,23 +19,18 @@ services:
|
||||
caddy: duplicati.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 8200}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.services.duplicati.loadbalancer.server.port: 8200
|
||||
traefik.http.routers.duplicati.rule: >
|
||||
Host(`duplicati.marcpartensky.com`) || Host(`dupliati.marcpartensky.fr`)
|
||||
traefik.http.routers.duplicati.rule: Host(`duplicati.marcpartensky.com`)
|
||||
traefik.http.routers.duplicati.entrypoints: websecure
|
||||
# traefik.http.routers.duplicati.tls.certresolver: tls
|
||||
traefik.http.routers.duplicati.tls.certresolver: tls
|
||||
traefik.http.services.duplicati.loadbalancer.server.port: 8200
|
||||
# ldapAuth Options=================================================================
|
||||
traefik.http.routers.duplicati.middlewares: ldap_auth
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.services.duplicati.loadbalancer.server.port: 8200
|
||||
# traefik.http.routers.duplicati.rule: Host(`duplicati.marcpartensky.com`)
|
||||
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
|
||||
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:
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
image: fazalfarhan01/earnapp:lite
|
||||
volumes:
|
||||
- earnapp:/etc/earnapp
|
||||
environment:
|
||||
EARNAPP_UUID: $EARNAPP_DEVICE_ID
|
||||
@@ -12,18 +12,10 @@ services:
|
||||
caddy: etherpad.marcpartensky.com, pad.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 9001}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.etherpad.rule: Host(`pad.marcpartensky.com`)
|
||||
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
|
||||
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: tls
|
||||
traefik.http.services.etherpad.loadbalancer.server.port: 9001
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
|
||||
@@ -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
|
||||
@@ -1,29 +0,0 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
filebrowser:
|
||||
image: hurlenko/filebrowser
|
||||
restart: unless-stopped
|
||||
# user: "${UID}:${GID}"
|
||||
volumes:
|
||||
- data:/data
|
||||
- ../data/filebrowser:/config
|
||||
# environment:
|
||||
# FB_BASEURL: /filebrowser
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.filebrowser.rule: 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:
|
||||
@@ -1,31 +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:
|
||||
- caddy
|
||||
- postgres
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.focalboard.rule: >
|
||||
Host(`board.marcpartensky.com`) || Host(`board.marcpartensky.fr`)
|
||||
traefik.http.routers.focalboard.entrypoints: websecure
|
||||
# traefik.http.routers.focalboard.tls.certresolver: tls
|
||||
traefik.http.services.focalboard.loadbalancer.server.port: 8000
|
||||
# traefik.http.routers.focalboard.middlewares: ldap_auth
|
||||
|
||||
volumes:
|
||||
data:
|
||||
pack:
|
||||
networks:
|
||||
postgres:
|
||||
external: true
|
||||
caddy:
|
||||
external: true
|
||||
@@ -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
|
||||
+17
-26
@@ -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.rule: 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
@@ -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:
|
||||
|
||||
@@ -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
|
||||
+2
-10
@@ -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:
|
||||
|
||||
@@ -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
|
||||
@@ -12,13 +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`)
|
||||
traefik.http.routers.homer.entrypoints: websecure
|
||||
traefik.http.routers.homer.tls.certresolver: tls
|
||||
traefik.http.services.homer.loadbalancer.server.port: 8080
|
||||
|
||||
volumes:
|
||||
homer:
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
honeygain:
|
||||
image: marcpartensky/honeygain
|
||||
env_file:
|
||||
- ../data/secrets/honeygain.env
|
||||
@@ -1,14 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
hydra:
|
||||
image: marcpartensky/hydra
|
||||
network: host
|
||||
command: -P /rockyou.txt -L /usernames.txt ssh://192.168.252.84
|
||||
workdir: /root
|
||||
volumes:
|
||||
- ../data/hydra/rockyou.txt:/rockyou.txt
|
||||
- ../data/hydra/usernames.txt:/usernames.txt
|
||||
- hydra:/root
|
||||
|
||||
volumes:
|
||||
hydra:
|
||||
+15
-14
@@ -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
|
||||
|
||||
@@ -1,63 +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
|
||||
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.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.service_nextcloud.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
|
||||
@@ -1,46 +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.com`)
|
||||
traefik.http.routers.jellyfin.rule: Host(`jellyfin.marcpartensky.fr`)
|
||||
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
|
||||
+2
-14
@@ -2,15 +2,13 @@ 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:
|
||||
- caddy
|
||||
- jupyterhub
|
||||
environment:
|
||||
DOCKER_JUPYTER_IMAGE: marcpartensky/jupyterlab
|
||||
DOCKER_NETWORK_NAME: jupyterhub
|
||||
@@ -22,18 +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
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
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.http.services.jupyterhub.loadbalancer.server.port: 3000
|
||||
|
||||
networks:
|
||||
jupyterhub:
|
||||
name: jupyterhub
|
||||
driver: overlay
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
@@ -2,13 +2,13 @@ version: "3.9"
|
||||
|
||||
services:
|
||||
jupyterlab:
|
||||
image: jupyter/datascience-notebook:latest
|
||||
image: marcpartensky/jupyterlab
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# - GEN_CERT=yes
|
||||
JUPYTER_ENABLE_LAB: "yes"
|
||||
GRANT_SUDO: "yes"
|
||||
# entrypoint: start.sh jupyter lab --user root
|
||||
entrypoint: start.sh jupyter lab --user root
|
||||
networks:
|
||||
- caddy
|
||||
labels:
|
||||
@@ -19,8 +19,6 @@ services:
|
||||
traefik.http.routers.jupyterlab.entrypoints: websecure
|
||||
traefik.http.routers.jupyterlab.tls.certresolver: tls
|
||||
traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
|
||||
volumes:
|
||||
- jupyterlab:/home/jovyan
|
||||
# entrypoint: start-notebook.sh \
|
||||
# --NotebookApp.keyfile=key/0000_key-certbot.pem
|
||||
# --NotebookApp.certfile=cert/0000_csr-certbot.pem
|
||||
@@ -29,8 +27,6 @@ services:
|
||||
# - /etc/letsencrypt/csr:/home/jovyan/work/cert
|
||||
# - /etc/letsencrypt:/etc/letsencrypt
|
||||
#
|
||||
volumes:
|
||||
jupyterlab:
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
|
||||
@@ -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
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
kippo:
|
||||
image: tomdesinto/kippo
|
||||
ports:
|
||||
- "22:22"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
+382
-427
File diff suppressed because it is too large
Load Diff
@@ -8,19 +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
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
labels:
|
||||
caddy: matrix.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 8008}}"
|
||||
@@ -29,14 +21,6 @@ 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:
|
||||
caddy:
|
||||
|
||||
@@ -24,13 +24,6 @@ services:
|
||||
traefik.http.routers.minecraft.entrypoints: websecure
|
||||
traefik.http.routers.minecraft.tls.certresolver: tls
|
||||
traefik.http.services.minecraft.loadbalancer.server.port: 8080
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
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,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,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"
|
||||
|
||||
|
||||
@@ -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
-11
@@ -15,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:
|
||||
@@ -35,22 +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.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
|
||||
|
||||
@@ -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
|
||||
+6
-23
@@ -5,17 +5,15 @@ services:
|
||||
image: nextcloud
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
# - nextcloud:/var/www/html
|
||||
- data:/var/www/html/data
|
||||
- config:/var/www/html/config
|
||||
- themes:/var/www/html/themes
|
||||
- apps:/var/www/html/custom_apps
|
||||
- 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
|
||||
- ldap
|
||||
- nextcloud
|
||||
# depends_on:
|
||||
# - nextcloud_mariadb
|
||||
@@ -27,26 +25,11 @@ services:
|
||||
traefik.http.routers.nextcloud.entrypoints: websecure
|
||||
traefik.http.routers.nextcloud.tls.certresolver: tls
|
||||
traefik.http.services.nextcloud.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.nextcloud.rule: >
|
||||
Host(`cloud.marcpartensky.com`) && Host(`cloud.marcpartensky.fr`)
|
||||
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:
|
||||
nextcloud:
|
||||
ldap:
|
||||
external: true
|
||||
caddy:
|
||||
external: true
|
||||
postgres:
|
||||
external: true
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
nixos:
|
||||
image: nixos/nix
|
||||
restart: unless-stopped
|
||||
@@ -1,71 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
|
||||
phpmyadmin:
|
||||
image: phpmyadmin/phpmyadmin:latest
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ../data/secrets/numeris.env
|
||||
links:
|
||||
- numeris:db
|
||||
networks:
|
||||
- caddy
|
||||
- numeris
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.phpmyadmin.rule: Host(`phpmyadmin.numeris.marcpartensky.com`)
|
||||
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.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.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:
|
||||
@@ -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:
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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:
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
+2
-7
@@ -17,15 +17,10 @@ services:
|
||||
traefik.http.routers.pandoc.entrypoints: websecure
|
||||
traefik.http.routers.pandoc.tls.certresolver: tls
|
||||
traefik.http.services.pandoc.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
labels:
|
||||
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:
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
pawns:
|
||||
image: marcpartensky/pawns
|
||||
env_file:
|
||||
- ../data/secrets/pawns.env
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
peer2profit:
|
||||
image: peer2profit/peer2profit_x86_64:latest
|
||||
environment:
|
||||
P2P_EMAIL: marc@marcpartensky.com
|
||||
@@ -24,10 +24,10 @@ services:
|
||||
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
|
||||
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
|
||||
|
||||
@@ -1,46 +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.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
|
||||
@@ -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
|
||||
@@ -28,13 +28,6 @@ services:
|
||||
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.com`)
|
||||
traefik.http.routers.portainer.entrypoints: websecure
|
||||
traefik.http.routers.portainer.tls.certresolver: tls
|
||||
traefik.http.services.portainer.loadbalancer.server.port: 9000
|
||||
|
||||
volumes:
|
||||
portainer:
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:14
|
||||
restart: unless-stopped
|
||||
# user: postgres:postgres
|
||||
# user: "974:974"
|
||||
ports:
|
||||
- target: 5432
|
||||
published: 5432
|
||||
mode: host
|
||||
volumes:
|
||||
- ../data/postgres:/docker-entrypoint-initdb.d
|
||||
- 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
|
||||
|
||||
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
|
||||
@@ -13,7 +13,6 @@ services:
|
||||
TZ: Europe/Paris
|
||||
MONGODB_URI: mongodb://pritunl_mongo:27017/pritunl
|
||||
PRITUNL_DEBUG: "true"
|
||||
# WIREGUARD: true
|
||||
privileged: true
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
@@ -36,13 +35,6 @@ services:
|
||||
traefik.http.routers.pritunl.entrypoints: websecure
|
||||
traefik.http.routers.pritunl.tls.certresolver: tls
|
||||
traefik.http.services.pritunl.loadbalancer.server.port: 9700
|
||||
deploy:
|
||||
labels:
|
||||
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:
|
||||
|
||||
@@ -28,23 +28,6 @@ services:
|
||||
traefik.http.routers.registry.entrypoints: websecure
|
||||
traefik.http.routers.registry.tls.certresolver: "tls"
|
||||
traefik.http.services.registry.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.registry.rule: Host(`registry.marcpartensky.com`)
|
||||
traefik.http.routers.registry.entrypoints: websecure
|
||||
traefik.http.routers.registry.tls.certresolver: "tls"
|
||||
traefik.http.services.registry.loadbalancer.server.port: 80
|
||||
|
||||
registry_browser:
|
||||
image: klausmeyer/docker-registry-browser
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.registry_browser.rule: Host(`ui.registry.marcpartensky.com`)
|
||||
traefik.http.routers.registry_browser.entrypoints: websecure
|
||||
traefik.http.routers.registry_browser.tls.certresolver: "tls"
|
||||
traefik.http.services.registry_browser.loadbalancer.server.port: 8080
|
||||
|
||||
volumes:
|
||||
registry_data:
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
repocket:
|
||||
image: repocket/repocket
|
||||
env_file:
|
||||
- ../data/secrets/repocket.env
|
||||
@@ -1,15 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
sablier:
|
||||
image: ghcr.io/acouvreur/sablier:local
|
||||
command:
|
||||
- start
|
||||
- --provider.name=docker
|
||||
volumes:
|
||||
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||
labels:
|
||||
traefik.enable: true
|
||||
# Dynamic Middleware
|
||||
traefik.http.middlewares.dynamic.plugin.sablier.names: sablier-whoami-1
|
||||
traefik.http.middlewares.dynamic.plugin.sablier.sablierUrl: http://sablier:10000
|
||||
traefik.http.middlewares.dynamic.plugin.sablier.dynamic.sessionDuration: 1m
|
||||
@@ -1,18 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
satisfactory-server:
|
||||
image: "wolveix/satisfactory-server:latest"
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7777:7777/udp"
|
||||
- "15000:15000/udp"
|
||||
- "15777:15777/udp"
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
AUTOSAVEINTERVAL: 300
|
||||
AUTOSAVENUM: 5
|
||||
MAXPLAYERS: 4
|
||||
#- DISABLESEASONALEVENTS=true
|
||||
volumes:
|
||||
- './config:/config'
|
||||
+78
-104
@@ -1,104 +1,78 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
db:
|
||||
image: mariadb:10.5
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ../data/secrets/seafile.env
|
||||
volumes:
|
||||
- mariadb:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
|
||||
networks:
|
||||
seafile:
|
||||
aliases:
|
||||
- seafile-mysql
|
||||
|
||||
memcached:
|
||||
image: memcached:1.6
|
||||
restart: unless-stopped
|
||||
entrypoint: memcached -m 256
|
||||
networks:
|
||||
- seafile
|
||||
networks:
|
||||
seafile:
|
||||
aliases:
|
||||
- seafile-memcached
|
||||
|
||||
elasticsearch:
|
||||
image: elasticsearch:7.16.2
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
discovery.type: single-node
|
||||
bootstrap.memory_lock: "true"
|
||||
ES_JAVA_OPTS: -Xms1g -Xmx1g
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
# mem_limit: 2g
|
||||
volumes:
|
||||
- elasticsearch:/usr/share/elasticsearch/data # Requested, specifies the path to Elasticsearch data persistent store.
|
||||
networks:
|
||||
- seafile
|
||||
networks:
|
||||
seafile:
|
||||
aliases:
|
||||
- seafile-elasticsearch
|
||||
|
||||
seafile:
|
||||
image: docker.seadrive.org/seafileltd/seafile-pro-mc:latest
|
||||
restart: unless-stopped
|
||||
# ports:
|
||||
# - "80:80"
|
||||
# - "443:443" # If https is enabled, cancel the comment.
|
||||
# environment:
|
||||
# SEAFILE_BOOTSTRAP: true
|
||||
volumes:
|
||||
- /srv/seafile:/shared/seafile
|
||||
# - seafile:/shared/seafile/seafile-data
|
||||
# - seahub:/shared/seafile/seahub-data
|
||||
# - ../data/seafile:/shared/seafile/conf
|
||||
# - ../data/seafile/ccnet.conf:/shared/seafile/conf/ccnet.conf
|
||||
# - ../data/seafile/gunicorn.conf.py:/opt/seafile/conf/gunicorn.conf.py
|
||||
# - ../data/seafile/seafdav.conf:/opt/seafile/conf/seafdav.conf
|
||||
# - ../data/seafile/seafevents.conf:/opt/seafile/conf/seafevents.conf
|
||||
# - ../data/seafile/seafile.conf:/opt/seafile/conf/seafile.conf
|
||||
# - ../data/seafile/seahub_settings.py:/opt/seafile/conf/seahub_settings.py
|
||||
env_file:
|
||||
- ../data/secrets/seafile.env
|
||||
depends_on:
|
||||
- db
|
||||
- memcached
|
||||
- elasticsearch
|
||||
networks:
|
||||
- seafile
|
||||
- caddy
|
||||
healthcheck:
|
||||
test: curl localhost/api2/ping/
|
||||
# labels:
|
||||
# caddy: seafile.marcpartensky.com
|
||||
# caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
# traefik.enable: "true"
|
||||
# traefik.http.routers.seafile.rule: Host(`seafile.marcpartensky.com`)
|
||||
# traefik.http.routers.seafile.entrypoints: websecure
|
||||
# traefik.http.services.seafile.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.seafile.rule: >
|
||||
Host(`seafile.marcpartensky.com`) || Host(`seafile.marcpartensky.fr`)
|
||||
traefik.http.routers.seafile.entrypoints: websecure
|
||||
traefik.http.services.seafile.loadbalancer.server.port: 80
|
||||
|
||||
volumes:
|
||||
seafile:
|
||||
seahub:
|
||||
mariadb:
|
||||
elasticsearch:
|
||||
|
||||
networks:
|
||||
seafile:
|
||||
caddy:
|
||||
external: true
|
||||
version: "3.9"
|
||||
services:
|
||||
seafile_server:
|
||||
image: ggogel/seafile-server:9.0.7
|
||||
volumes:
|
||||
- seafile_data:/shared
|
||||
env_file:
|
||||
- ../data/secrets/seafile.env
|
||||
environment:
|
||||
HTTPS: "true"
|
||||
SEAFILE_SERVER_HOSTNAME: seafile.marcpartensky.com # Mandatory on first deployment!
|
||||
depends_on:
|
||||
- seafile_mariadb
|
||||
- seafile_memcached
|
||||
- seafile_caddy
|
||||
networks:
|
||||
- seafile
|
||||
|
||||
seahub:
|
||||
image: ggogel/seahub:9.0.7
|
||||
volumes:
|
||||
- seafile_data:/shared
|
||||
- seahub_avatars:/shared/seafile/seahub-data/avatars
|
||||
- seahub_custom:/shared/seafile/seahub-data/custom
|
||||
env_file:
|
||||
- ../data/secrets/seafile.env
|
||||
depends_on:
|
||||
- seafile_server
|
||||
- seafile_caddy
|
||||
- seahub_media
|
||||
networks:
|
||||
- seafile
|
||||
|
||||
seahub_media:
|
||||
image: ggogel/seahub-media:9.0.7
|
||||
volumes:
|
||||
- seahub_avatars:/usr/share/caddy/media/avatars
|
||||
- seahub_custom:/usr/share/caddy/media/custom
|
||||
depends_on:
|
||||
- seafile_caddy
|
||||
networks:
|
||||
- seafile
|
||||
|
||||
seafile_mariadb:
|
||||
image: mariadb:10.7.4
|
||||
env_file:
|
||||
- ../data/secrets/seafile.env
|
||||
volumes:
|
||||
- seafile_mariadb:/var/lib/mysql
|
||||
networks:
|
||||
- seafile
|
||||
|
||||
seafile_memcached:
|
||||
image: memcached:1.6.16
|
||||
entrypoint: memcached -m 1024
|
||||
networks:
|
||||
- seafile
|
||||
|
||||
seafile_caddy:
|
||||
image: ggogel/seafile-caddy:1.0.6
|
||||
networks:
|
||||
- seafile
|
||||
- caddy
|
||||
labels:
|
||||
caddy: seafile.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
|
||||
networks:
|
||||
seafile:
|
||||
internal: true
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
seafile_data:
|
||||
seafile_mariadb:
|
||||
seahub_avatars:
|
||||
seahub_custom:
|
||||
|
||||
+11
-20
@@ -5,31 +5,22 @@ services:
|
||||
image: searx/searx
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ../data/searx/templates:/etc/searx/templates
|
||||
- ../data/searx/themes:/etc/searx/searx/static/themes
|
||||
- searx:/etc/searx
|
||||
environment:
|
||||
BASE_URL: https://searx.marcpartensky.com
|
||||
networks:
|
||||
- caddy
|
||||
# labels:
|
||||
# caddy: searx.marcpartensky.com
|
||||
# caddy.reverse_proxy: "{{upstreams}}"
|
||||
# traefik.enable: "true"
|
||||
# traefik.http.routers.searx.rule: Host(`searx.marcpartensky.com`)
|
||||
# traefik.http.routers.searx.entrypoints: websecure
|
||||
# traefik.http.routers.searx.tls.certresolver: tls
|
||||
# traefik.http.services.searx.loadbalancer.server.port: 8080
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.searx.rule: >
|
||||
Host(`searx.marcpartensky.com`) || Host(`searx.marcpartensky.fr`)
|
||||
traefik.http.routers.searx.entrypoints: websecure
|
||||
# traefik.http.routers.searx.tls.certresolver: tls
|
||||
traefik.http.services.searx.loadbalancer.server.port: 8080
|
||||
labels:
|
||||
caddy: searx.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.searx.rule: Host(`searx.marcpartensky.com`)
|
||||
traefik.http.routers.searx.entrypoints: websecure
|
||||
traefik.http.routers.searx.tls.certresolver: tls
|
||||
traefik.http.services.searx.loadbalancer.server.port: 80
|
||||
|
||||
# volumes:
|
||||
# searx:
|
||||
volumes:
|
||||
searx:
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
sqlmap:
|
||||
image: paoloo/sqlmap
|
||||
volumes:
|
||||
- sqlmap:/root/.sqlmap
|
||||
command: --url http://ravens-pu8yvgzavpu7ooyr.francecentral.cloudapp.azure.com/Reunion_secrete-2021-08-16.php
|
||||
|
||||
volumes:
|
||||
sqlmap:
|
||||
+2
-4
@@ -11,8 +11,7 @@ services:
|
||||
SSH_PORT: 22
|
||||
# OPENVPN_HOST: localhost
|
||||
# OPENVPN_PORT: 1194
|
||||
# HTTPS_HOST: caddy
|
||||
HTTPS_HOST: traefik
|
||||
HTTPS_HOST: caddy
|
||||
HTTPS_PORT: 443
|
||||
ports:
|
||||
- "443:8443"
|
||||
@@ -24,8 +23,7 @@ services:
|
||||
- caddy
|
||||
healthcheck:
|
||||
# test: ["CMD-SHELL", "wget", "--no-check-certificate", "https://caddy:8443"]
|
||||
# test: ["CMD", "/usr/bin/curl", "http://caddy"]
|
||||
test: ["CMD", "/usr/bin/wget", "--spider", "http://traefik:8080/ping"]
|
||||
test: ["CMD", "/usr/bin/curl", "http://caddy"]
|
||||
# interval: 30s
|
||||
# timeout: 5s
|
||||
# retries: 5
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
streamlit:
|
||||
image: aminehy/docker-streamlit-app:latest
|
||||
# command: "streamlit run src/main.py"
|
||||
volumes:
|
||||
- ../data/streamlit:/usr/src/app/src
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.streamlit.rule: Host(`streamlit.marcpartensky.com`)
|
||||
traefik.http.routers.streamlit.entrypoints: websecure
|
||||
traefik.http.routers.streamlit.tls.certresolver: tls
|
||||
traefik.http.services.streamlit.loadbalancer.server.port: 8080
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
@@ -1,23 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
visualizer:
|
||||
image: dockersamples/visualizer
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
logging:
|
||||
options:
|
||||
max-size: 1g
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.swarm_visualizer.rule: Host(`swarm.marcpartensky.com`)
|
||||
traefik.http.routers.swarm_visualizer.entrypoints: websecure
|
||||
traefik.http.routers.swarm_visualizer.tls.certresolver: tls
|
||||
traefik.http.services.swarm_visualizer.loadbalancer.server.port: 8080
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
@@ -21,11 +21,6 @@ services:
|
||||
limits:
|
||||
cpus: '0.50'
|
||||
memory: 1024M
|
||||
labels:
|
||||
traefik.http.routers.swarmpit.rule: Host(`swarm.marcpartensky.com`)
|
||||
traefik.http.routers.swarmpit.entrypoints: websecure
|
||||
traefik.http.routers.swarmpit.tls.certresolver: tls
|
||||
traefik.http.services.swarmpit.loadbalancer.server.port: 8080
|
||||
# reservations:
|
||||
# cpus: '0.25'
|
||||
# memory: 512M
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
tableau:
|
||||
image: marcpartensky/tableau-server
|
||||
image: pvtmert/tableau
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ../data/secrets/tableau.env
|
||||
@@ -11,7 +11,7 @@ services:
|
||||
caddy: tableau.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 8080}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.tableau.rule: Host(`tableau.marcpartensky.fr`)
|
||||
traefik.http.routers.tableau.rule: Host(`tableau.marcpartensky.com`)
|
||||
traefik.http.routers.tableau.entrypoints: websecure
|
||||
traefik.http.routers.tableau.tls.certresolver: tls
|
||||
traefik.http.services.tableau.loadbalancer.server.port: 8080
|
||||
|
||||
+21
-34
@@ -1,74 +1,61 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
front:
|
||||
todolist:
|
||||
image: marcpartensky/je-todoapp-react
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
PORT: 80
|
||||
SPRING_API_URL: https://api.todolist.marcpartensky.com
|
||||
depends_on:
|
||||
- back
|
||||
- todolist_api
|
||||
networks:
|
||||
- caddy
|
||||
# entrypoint: ["/bin/sh", "-c", "'SPRING_API_URL=https://api.todolist.marcpartensky.com serve -s build'"]
|
||||
labels:
|
||||
caddy: todolist.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.front.rule: Host(`todolist.marcpartensky.com`)
|
||||
traefik.http.routers.front.entrypoints: websecure
|
||||
traefik.http.routers.front.tls.certresolver: tls
|
||||
traefik.http.services.front.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.front.rule: Host(`todolist.marcpartensky.com`)
|
||||
traefik.http.routers.front.entrypoints: websecure
|
||||
traefik.http.routers.front.tls.certresolver: tls
|
||||
traefik.http.services.front.loadbalancer.server.port: 80
|
||||
traefik.http.routers.todolist.rule: Host(`todolist.marcpartensky.com`)
|
||||
traefik.http.routers.todolist.entrypoints: websecure
|
||||
traefik.http.routers.todolist.tls.certresolver: tls
|
||||
traefik.http.services.todolist.loadbalancer.server.port: 80
|
||||
# entrypoint: ["/bin/sh", "-c", "'SPRING_API_URL=https://api.todolist.marcpartensky.com serve -s build'"]
|
||||
|
||||
back:
|
||||
todolist_api:
|
||||
image: marcpartensky/je-todoapp-spring-api
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ../data/secrets/todolist.env
|
||||
environment:
|
||||
# PORT: 80
|
||||
POSTGRES_HOST: postgres
|
||||
PORT: 80
|
||||
POSTGRES_HOST: todolist_postgres
|
||||
depends_on:
|
||||
- postgres
|
||||
- todolist_postgres
|
||||
networks:
|
||||
- caddy
|
||||
- todolist
|
||||
labels:
|
||||
caddy: api.todolist.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{ upstreams 8080 }}"
|
||||
caddy.reverse_proxy: "{{upstreams http 8080}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.back.rule: Host(`api.todolist.marcpartensky.com`)
|
||||
traefik.http.routers.back.entrypoints: websecure
|
||||
traefik.http.routers.back.tls.certresolver: tls
|
||||
traefik.http.services.back.loadbalancer.server.port: 8080
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.back.rule: Host(`api.todolist.marcpartensky.com`)
|
||||
traefik.http.routers.back.entrypoints: websecure
|
||||
traefik.http.routers.back.tls.certresolver: tls
|
||||
traefik.http.services.back.loadbalancer.server.port: 8080
|
||||
traefik.http.routers.todolist_api.rule: Host(`api.todolist.marcpartensky.com`)
|
||||
traefik.http.routers.todolist_api.entrypoints: websecure
|
||||
traefik.http.routers.todolist_api.tls.certresolver: tls
|
||||
traefik.http.services.todolist_api.loadbalancer.server.port: 8080
|
||||
|
||||
postgres:
|
||||
image: postgres:15
|
||||
todolist_postgres:
|
||||
image: postgres
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
- todolist_postgres:/var/lib/postgresql/data
|
||||
env_file:
|
||||
- ../data/secrets/todolist.env
|
||||
networks:
|
||||
- caddy
|
||||
- todolist
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
todolist_postgres:
|
||||
|
||||
networks:
|
||||
todolist:
|
||||
|
||||
+12
-49
@@ -2,11 +2,10 @@ version: "3.9"
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:2.9.1 # https://github.com/wiltonsr/ldapauth/issues/25
|
||||
# image: traefik:latest # https://github.com/wiltonsr/ldapauth/issues/25
|
||||
image: traefik
|
||||
# env_file:
|
||||
# - ../data/secrets/traefik.env
|
||||
# restart: unless-stopped
|
||||
restart: unless-stopped
|
||||
# command:
|
||||
# ## Provider Settings - https://docs.traefik.io/providers/docker/#provider-configuration ##
|
||||
# # - --providers.docker.exposedbydefault=false # <== Don't expose every container to traefik, only expose enabled ones
|
||||
@@ -28,20 +27,14 @@ services:
|
||||
# - --entrypoints.web.http.redirections.entryPoint.scheme=https
|
||||
# - --entrypoints.web.http.redirections.entrypoint.permanent=true
|
||||
ports:
|
||||
- target: 80
|
||||
published: 80
|
||||
mode: host
|
||||
- target: 443
|
||||
published: 443
|
||||
mode: host
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
networks:
|
||||
- caddy
|
||||
- ldap
|
||||
volumes:
|
||||
- ../data/traefik/traefik.yml:/traefik.yml # static configuration
|
||||
- ../data/traefik/dynamic.yml:/dynamic.yml
|
||||
# - traefik_letsencrypt:/letsencrypt
|
||||
- traefik:/config
|
||||
- traefik_letsencrypt:/letsencrypt
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
@@ -50,50 +43,20 @@ services:
|
||||
traefik.http.routers.traefik.entrypoints: websecure
|
||||
traefik.http.routers.traefik.tls.certresolver: tls
|
||||
traefik.docker.network: caddy
|
||||
healthcheck:
|
||||
test: traefik healthcheck --ping
|
||||
# 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.routers.redirs.entrypoints: web
|
||||
# traefik.http.middlewares.redirect-to-https.redirectscheme.scheme: https
|
||||
# traefik.http.routers.redirs.middlewares: redirect-to-https
|
||||
# traefik.http.routers.redirs.rule: hostregexp(`{host:.+}`)
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
# mode: global
|
||||
update_config:
|
||||
parallelism: 1
|
||||
delay: 5s
|
||||
order: start-first
|
||||
failure_action: rollback
|
||||
rollback_config:
|
||||
order: start-first
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.port: 8080
|
||||
# traefik.docker.network: caddy
|
||||
traefik.http.services.traefik.loadbalancer.server.port: 8080
|
||||
# traefik.http.routers.traefik.service: api@internal
|
||||
traefik.http.routers.traefik.entrypoints: websecure
|
||||
traefik.http.routers.traefik.rule: >
|
||||
Host(`traefik.marcpartensky.com`) || Host(`traefik.marcpartensky.fr`)
|
||||
traefik.http.routers.traefik.tls.certresolver: tls
|
||||
# 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: ldaps://ldap
|
||||
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.port: 636
|
||||
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.useTLS: "true"
|
||||
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.insecureSkipVerify: "true"
|
||||
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.baseDN: "ou=people,dc=admin,dc=org"
|
||||
traefik.http.middlewares.ldap_auth.plugin.ldapAuth.attribute: uid
|
||||
|
||||
volumes:
|
||||
# traefik_letsencrypt:
|
||||
# traefik_certs:
|
||||
traefik:
|
||||
# name: "vps_traefik_letsencrypt"
|
||||
name: traefik
|
||||
external: true
|
||||
traefik_letsencrypt:
|
||||
|
||||
networks:
|
||||
ldap:
|
||||
external: true
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
traffmonetizer:
|
||||
image: marcpartensky/traffmonetizer
|
||||
env_file:
|
||||
- ../data/secrets/traffmonetizer.env
|
||||
@@ -1,8 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
ssh-tunnel:
|
||||
image: kroniak/ssh-client
|
||||
network_mode: host
|
||||
entrypoint: ssh -NR 42069:localhost:22 debian@etienne-faviere.tech
|
||||
volumes:
|
||||
- ~/.ssh:/root/.ssh
|
||||
@@ -1,24 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
kuma:
|
||||
image: louislam/uptime-kuma:1
|
||||
volumes:
|
||||
- kuma:/app/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.services.kuma.loadbalancer.server.port: 3001
|
||||
traefik.http.routers.kuma.rule: >
|
||||
Host(`uptime.marcpartensky.com`) || Host(`uptime.marcpartensky.fr`)
|
||||
traefik.http.routers.kuma.entrypoints: websecure
|
||||
traefik.http.routers.kuma.tls.certresolver: cloudflare
|
||||
traefik.http.routers.kuma.middlewares: ldap_auth
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
volumes:
|
||||
kuma:
|
||||
+7
-14
@@ -1,31 +1,24 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
website:
|
||||
image: marcpartensky/valentin-website
|
||||
valentin_website:
|
||||
image: valentincolin/website
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
PRODUCTION: "False"
|
||||
PRODUCTION: "True"
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfile
|
||||
networks:
|
||||
- caddy
|
||||
labels:
|
||||
caddy: valentin-colin.fr
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.valentincolin_website.rule: Host(`valentin-colin.fr`)
|
||||
traefik.http.routers.valentincolin_website.rule: Host(`valentin-colin.com`)
|
||||
traefik.http.routers.valentincolin_website.entrypoints: websecure
|
||||
traefik.http.routers.valentincolin_website.tls.certresolver: tls
|
||||
traefik.http.services.valentincolin_website.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.valentincolin_website.rule: Host(`valentin-colin.fr`)
|
||||
traefik.http.routers.valentincolin_website.entrypoints: websecure
|
||||
traefik.http.routers.valentincolin_website.tls.certresolver: tls
|
||||
traefik.http.services.valentincolin_website.loadbalancer.server.port: 80
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
|
||||
+26
-55
@@ -1,73 +1,44 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
ldap_sync:
|
||||
image: marcpartensky/vaultwarden-ldap
|
||||
restart: unless-stopped
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- ./example.config.toml:/config.toml:ro
|
||||
# ./root.cert:/usr/src/vaultwarden_ldap/root.cert:ro
|
||||
environment:
|
||||
CONFIG_PATH: /config.toml
|
||||
RUST_BACKTRACE: 1
|
||||
volumes:
|
||||
- ../data/vaultwarden/config.toml:/config.toml:ro
|
||||
# ./root.cert:/usr/src/vaultwarden_ldap/root.cert:ro
|
||||
networks:
|
||||
- vaultwarden
|
||||
- ldap
|
||||
depends_on:
|
||||
- vaultwarden
|
||||
# networks:
|
||||
# - vaultwarden
|
||||
# - ldap
|
||||
|
||||
vaultwarden:
|
||||
image: vaultwarden/server
|
||||
env_file:
|
||||
- ../data/secrets/vaultwarden.env
|
||||
# environment:
|
||||
# SIGNUPS_ALLOWED: "true"
|
||||
# INVITATIONS_ALLOWED: "true"
|
||||
# WEBSOCKET_ENABLED: "true"
|
||||
volumes:
|
||||
- data:/data
|
||||
environment:
|
||||
ADMIN_TOKEN: admin
|
||||
SIGNUPS_ALLOWED: 'false'
|
||||
INVITATIONS_ALLOWED: 'true'
|
||||
networks:
|
||||
- caddy
|
||||
- vaultwarden
|
||||
- postgres
|
||||
# labels:
|
||||
# caddy: vault.marcpartensky.com
|
||||
# caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
# traefik.enable: "true"
|
||||
# traefik.http.routers.vaultwarden.rule: Host(`vault.marcpartensky.com`)
|
||||
# traefik.http.routers.vaultwarden.entrypoints: websecure
|
||||
# traefik.http.routers.vaultwarden.tls.certresolver: tls
|
||||
# traefik.http.services.vaultwarden.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
labels:
|
||||
# traefik.enable: "false"
|
||||
traefik.enable: "true"
|
||||
# traefik.http.routers.vaultwarden.rule: >
|
||||
# Host(`vault.marcpartensky.com`)
|
||||
traefik.http.routers.vaultwarden.rule: >
|
||||
Host(`vault.marcpartensky.com`) ||
|
||||
Host(`vault.marcpartensky.fr`) ||
|
||||
Host(`secret.marcpartensky.fr`)
|
||||
traefik.http.routers.vaultwarden.entrypoints: websecure
|
||||
traefik.http.routers.vaultwarden.tls.certresolver: tls
|
||||
traefik.http.services.vaultwarden.loadbalancer.server.port: 80
|
||||
labels:
|
||||
caddy: vault.marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.gitea.rule: Host(`vault.marcpartensky.com`)
|
||||
traefik.http.routers.gitea.entrypoints: websecure
|
||||
traefik.http.routers.gitea.tls.certresolver: tls
|
||||
traefik.http.services.gitea.loadbalancer.server.port: 80
|
||||
|
||||
# ldap_admin:
|
||||
# image: osixia/phpldapadmin
|
||||
# ports:
|
||||
# - 8001:80
|
||||
# environment:
|
||||
# PHPLDAPADMIN_HTTPS: 'false'
|
||||
# PHPLDAPADMIN_LDAP_HOSTS: ldap
|
||||
volumes:
|
||||
data:
|
||||
ldap_admin:
|
||||
image: osixia/phpldapadmin
|
||||
ports:
|
||||
- 8001:80
|
||||
environment:
|
||||
PHPLDAPADMIN_HTTPS: 'false'
|
||||
PHPLDAPADMIN_LDAP_HOSTS: ldap
|
||||
|
||||
networks:
|
||||
vaultwarden:
|
||||
postgres:
|
||||
external: true
|
||||
ldap:
|
||||
external: true
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
terminal:
|
||||
image: raonigabriel/web-terminal:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.services.terminal.loadbalancer.server.port: 7681
|
||||
traefik.http.routers.terminal.rule: >
|
||||
Host(`terminal.marcpartensky.com`) || Host(`terminal.marcpartensky.fr`)
|
||||
traefik.http.routers.terminal.entrypoints: websecure
|
||||
# traefik.http.routers.terminal.tls.certresolver: tls
|
||||
traefik.http.routers.terminal.middlewares: ldap_auth
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
@@ -1,27 +0,0 @@
|
||||
# https://github.com/Flowko/website-shot
|
||||
version: "3.9"
|
||||
services:
|
||||
webshot:
|
||||
image: flowko1/website-shot
|
||||
volumes:
|
||||
- webshot:/usr/src/website-shot/screenshots
|
||||
# environment:
|
||||
# PASSWORD_PROTECT: 1
|
||||
# PASSWORD: yourpassword
|
||||
networks:
|
||||
- caddy
|
||||
deploy:
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.webshot.rule: Host(`webshot.marcpartensky.com`)
|
||||
traefik.http.routers.webshot.entrypoints: websecure
|
||||
traefik.http.routers.webshot.tls.certresolver: tls
|
||||
traefik.http.services.webshot.loadbalancer.server.port: 3000
|
||||
# traefik.http.routers.duplicati.middlewares: ldap_auth
|
||||
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
volumes:
|
||||
webshot:
|
||||
+58
-31
@@ -19,27 +19,23 @@ services:
|
||||
# - "0.0.0.0"
|
||||
depends_on:
|
||||
- redis
|
||||
volumes:
|
||||
- media:/app/media
|
||||
networks:
|
||||
- postgres
|
||||
- caddy
|
||||
volumes:
|
||||
- website_media:/app/media
|
||||
networks:
|
||||
- website
|
||||
- caddy
|
||||
# labels:
|
||||
# caddy: marcpartensky.com
|
||||
# caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
# # caddy.tls: "internal"
|
||||
# traefik.enable: "true"
|
||||
# traefik.http.routers.website.rule: Host(`marcpartensky.com, marcpartensky.fr`)
|
||||
# traefik.http.routers.website.entrypoints: websecure
|
||||
# traefik.http.routers.website.tls.certresolver: tls
|
||||
# traefik.http.services.website.loadbalancer.server.port: 80
|
||||
labels:
|
||||
caddy: marcpartensky.com
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
# caddy.tls: "internal"
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.website.rule: Host(`marcpartensky.com`)
|
||||
traefik.http.routers.website.entrypoints: websecure
|
||||
traefik.http.routers.website.tls.certresolver: tls
|
||||
traefik.http.services.website.loadbalancer.server.port: 80
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
# mode: global
|
||||
update_config:
|
||||
parallelism: 1
|
||||
@@ -52,13 +48,49 @@ services:
|
||||
reservations:
|
||||
cpus: "1"
|
||||
memory: "500M"
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.website.rule: >
|
||||
Host(`marcpartensky.com`) || Host(`marcpartensky.fr`)
|
||||
traefik.http.routers.website.entrypoints: websecure
|
||||
traefik.http.routers.website.tls.certresolver: tls
|
||||
traefik.http.services.website.loadbalancer.server.port: 80
|
||||
|
||||
postgres:
|
||||
image: postgres
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
env_file:
|
||||
- ../data/secrets/postgres.env
|
||||
networks:
|
||||
- website
|
||||
|
||||
pgweb:
|
||||
image: sosedoff/pgweb
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ../data/secrets/postgres.env
|
||||
networks:
|
||||
- website
|
||||
- caddy
|
||||
depends_on:
|
||||
- postgres
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "localhost:8081", "-O", "/dev/null"]
|
||||
labels:
|
||||
caddy: db.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(`db.marcpartensky.com`)
|
||||
traefik.http.routers.pgweb.entrypoints: websecure
|
||||
traefik.http.routers.pgweb.tls.certresolver: tls
|
||||
traefik.http.services.pgweb.loadbalancer.server.port: 8081
|
||||
|
||||
# postgres_adminer:
|
||||
# adminer:
|
||||
# image: adminer
|
||||
# restart: unless-stopped
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
@@ -67,17 +99,12 @@ services:
|
||||
- website
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli","ping"]
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
|
||||
volumes:
|
||||
media:
|
||||
website_media:
|
||||
postgres:
|
||||
|
||||
networks:
|
||||
website:
|
||||
postgres:
|
||||
external: true
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user