segfault/docker-compose.yml

760 lines
27 KiB
YAML
Raw Permalink Normal View History

2022-11-10 10:00:54 +00:00
version: "2.4"
2022-03-08 11:17:29 +00:00
services:
2022-08-02 10:07:05 +00:00
2022-10-08 08:30:59 +00:00
sf-redis:
image: redis
2022-11-25 11:35:31 +00:00
container_name: sf-redis
2022-10-08 08:30:59 +00:00
read_only: true
hostname: sf-redis
2022-08-02 10:07:05 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-10-08 08:30:59 +00:00
environment:
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2023-03-01 10:25:56 +00:00
network_mode: none
2022-10-11 12:51:11 +00:00
command: [ "redis-server", "/redis.conf", "--save", "\"\"", "--appendonly", "no", "--requirepass", "${SF_REDIS_AUTH}" ]
2022-10-08 08:30:59 +00:00
volumes:
- "${SF_BASEDIR:-.}/config/etc/redis/redis.conf:/redis.conf:ro"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-10-08 08:30:59 +00:00
sf-encfsd:
build: encfsd
image: sf-encfsd
2022-11-25 11:35:31 +00:00
container_name: sf-encfsd
2022-10-08 08:30:59 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-10-08 08:30:59 +00:00
depends_on:
- sf-redis
2022-08-02 10:07:05 +00:00
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
2022-10-18 17:57:35 +00:00
# xfs_quota needs this :/ FIXME
privileged: true
2023-02-19 17:15:42 +00:00
# NOTE: _MUST_ not run in host's pid space because we use 'pgrep' to find lg's encfsd pid.
2022-08-02 10:07:05 +00:00
environment:
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
- SF_SEED=${SF_SEED}
2022-08-02 10:07:05 +00:00
- SF_DEBUG
2022-10-08 08:30:59 +00:00
command: ["/encfsd.sh"]
2023-03-01 10:25:56 +00:00
network_mode: none
2022-08-02 10:07:05 +00:00
devices:
- "/dev/fuse:/dev/fuse"
volumes:
2024-01-20 20:44:05 +00:00
- "${SF_BASEDIR:-.}/config/db:/config/db:rw"
2022-10-18 17:57:35 +00:00
- "${SF_BASEDIR:-.}/config/etc/sf:/config/etc/sf:ro"
2022-10-08 08:30:59 +00:00
- "${SF_BASEDIR:-.}/data:/encfs/raw"
- "${SF_SHMDIR:-/dev/shm/sf}/encfs-sec:/encfs/sec:shared"
2023-11-07 08:17:51 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run:/sf/run:ro"
2023-02-27 17:17:32 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/encfsd/user:/sf/run/encfsd/user"
2022-10-08 08:30:59 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-11-10 10:00:54 +00:00
- "${SF_OVERLAYDIR:-/var/lib/docker/overlay2}:/var/lib/docker/overlay2:ro"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2023-02-19 17:15:42 +00:00
- "/sys/fs/cgroup:/sys/fs/cgroup"
2022-08-02 10:07:05 +00:00
2023-01-19 08:26:10 +00:00
# Note: If this one fails to start then most likelly bad ENCFS password.
# level=fatal msg="no such file or directory": unknown
2022-10-08 08:30:59 +00:00
sf-destructor:
build: encfsd
image: sf-encfsd
2022-11-25 11:35:31 +00:00
container_name: sf-destructor
2022-08-01 12:38:28 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-10-08 08:30:59 +00:00
depends_on:
- sf-redis
2022-10-16 15:14:16 +00:00
- sf-encfsd
2022-08-01 12:38:28 +00:00
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
environment:
2023-02-27 17:17:32 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH:?}
2022-08-01 12:38:28 +00:00
- SF_DEBUG
2022-10-08 08:30:59 +00:00
pid: "service:sf-encfsd"
command: ["/destructor.sh"]
2023-03-01 10:25:56 +00:00
network_mode: none
2022-08-01 12:38:28 +00:00
devices:
- "/dev/fuse:/dev/fuse"
volumes:
2024-04-13 19:29:03 +00:00
- "${SF_BASEDIR:-.}/config/db:/config/db:rw"
2024-01-20 20:44:05 +00:00
- "${SF_BASEDIR:-.}/config/etc/sf:/config/etc/sf:ro"
2022-10-08 08:30:59 +00:00
- "${SF_BASEDIR:-.}/data:/encfs/raw"
2023-06-12 06:11:22 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/self-for-guest:/config/self-for-guest"
2022-10-08 08:30:59 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/encfs-sec:/encfs/sec:shared"
2023-06-12 06:11:22 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run:/sf/run"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-10-08 08:30:59 +00:00
- "/var/run/docker.sock:/var/run/docker.sock"
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-10-28 07:02:12 +00:00
sf-containerguard:
build: tools/cg
image: sf-containerguard
container_name: sf-containerguard
2022-10-28 07:02:12 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-11-01 15:44:47 +00:00
pid: "host"
cap_add:
- SYS_PTRACE # access to /proc/<PID>/root/dev/pts/* to send messages to user.
2023-03-01 10:25:56 +00:00
network_mode: none
2022-10-28 07:02:12 +00:00
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
2023-03-01 10:25:56 +00:00
- "/var/run/containerd/io.containerd.runtime.v2.task:/var/run/containerd/io.containerd.runtime.v2.task:ro"
2022-10-31 18:51:27 +00:00
- "${SF_BASEDIR:-.}/config:${SF_BASEDIR:-.}/config"
2023-02-27 17:17:32 +00:00
- "/sys/fs/cgroup:/sys/fs/cgroup"
2022-10-28 07:02:12 +00:00
2023-10-23 16:47:34 +00:00
sf-logpipe:
build: tools/logpipe
image: sf-logpipe
container_name: sf-logpipe
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
volumes:
2023-11-02 17:20:56 +00:00
- "${SF_BASEDIR:-.}/config/etc/logpipe/:/app/config/:ro"
- "${SF_SHMDIR:-/dev/shm/sf}/run/logpipe/:/app/sock/:rw"
2023-10-23 16:47:34 +00:00
2022-10-08 08:30:59 +00:00
sf-portd:
build: encfsd
image: sf-encfsd
2022-11-25 11:35:31 +00:00
container_name: sf-portd
2022-10-08 08:30:59 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-10-08 08:30:59 +00:00
depends_on:
- sf-redis
environment:
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2022-10-08 08:30:59 +00:00
- SF_DEBUG
command: ["/portd.sh"]
2023-03-01 10:25:56 +00:00
network_mode: none
2022-10-08 08:30:59 +00:00
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/self-for-guest:/config/self-for-guest"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-10-08 08:30:59 +00:00
- "/var/run/docker.sock:/var/run/docker.sock"
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-08-01 12:38:28 +00:00
2022-03-08 18:15:37 +00:00
dns-doh:
image: crazymax/cloudflared
2022-11-25 11:35:31 +00:00
container_name: sf-dns-doh
2022-07-28 20:23:47 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-03-08 18:15:37 +00:00
networks:
dns-doh-net:
2023-05-10 10:57:17 +00:00
ipv4_address: ${SF_DOH_IP:?}
2022-03-08 18:15:37 +00:00
dnsmasq:
image: 4km3/dnsmasq:2.85-r2
2022-11-25 11:35:31 +00:00
container_name: sf-dnsmasq
2022-10-08 08:30:59 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-10-08 08:30:59 +00:00
depends_on:
- dns-doh
2022-03-08 18:15:37 +00:00
cap_add:
- NET_ADMIN
2022-12-02 08:21:58 +00:00
command: ["--no-resolv", "--domain-needed", "--server=${SF_DOH_IP}#5053", "--server=/onion/${SF_TOR_IP}#5353"]
2022-03-08 18:15:37 +00:00
networks:
2022-07-30 22:12:55 +00:00
vpn-net:
2023-05-10 10:57:17 +00:00
ipv4_address: ${SF_NET_VPN_DNS_IP:?}
2022-03-08 18:15:37 +00:00
dns-doh-net:
2022-08-09 19:29:11 +00:00
access-net:
2023-05-10 10:57:17 +00:00
ipv4_address: ${SF_NET_ACCESS_DNS_IP:?}
2022-03-08 18:15:37 +00:00
2022-09-28 09:49:46 +00:00
nordvpn:
image: hackerschoice/cryptostorm
2022-10-08 08:30:59 +00:00
container_name: sf-nordvpn
2023-03-24 10:23:04 +00:00
restart: "no"
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-07-25 12:42:33 +00:00
depends_on:
- dnsmasq
2022-10-08 08:30:59 +00:00
- sf-redis
2022-10-12 16:45:46 +00:00
- router
2022-12-02 08:21:58 +00:00
dns: ${SF_NET_VPN_DNS_IP}
2022-07-25 12:42:33 +00:00
cap_add:
- NET_ADMIN #required
environment:
2023-08-14 10:22:59 +00:00
# - PRIVATE_KEY=${SF_NORDVPN_PRIVATE_KEY:-}
- CONFIG=${SF_NORDVPN_CONFIG:-}
2022-10-08 08:30:59 +00:00
- PROVIDER=NordVPN
2023-03-26 05:40:47 +00:00
- NETWORK=${SF_NET_LG}
2023-06-09 09:22:58 +00:00
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP}
2022-10-08 08:30:59 +00:00
- POST_UP=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-nordvpn.log up %i
- PRE_DOWN=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-nordvpn.log down %i
2022-07-30 22:12:55 +00:00
- RECONNECT=604800 # Re-Connect every 7 days
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2022-10-08 08:30:59 +00:00
- SF_DEBUG
2022-07-25 12:42:33 +00:00
networks:
2022-07-30 22:12:55 +00:00
vpn-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NORDVPN_IP}
2022-07-25 12:42:33 +00:00
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
2022-09-17 18:39:19 +00:00
- net.ipv4.conf.all.rp_filter=2
2022-07-25 12:42:33 +00:00
- net.ipv4.ip_forward=1
2023-08-14 10:22:59 +00:00
- net.ipv4.conf.all.src_valid_mark=1 # SNAT
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_frag6_timeout=10
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=1 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2022-07-25 12:42:33 +00:00
volumes:
2022-09-09 14:19:46 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/vpn:/sf/run/vpn" # Between all VPNs
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-09-28 09:49:46 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
cryptostorm:
image: hackerschoice/cryptostorm
2022-10-08 08:30:59 +00:00
container_name: sf-cryptostorm
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2023-03-24 10:23:04 +00:00
restart: "no"
2022-09-28 09:49:46 +00:00
depends_on:
- dnsmasq
2022-10-08 08:30:59 +00:00
- sf-redis
2022-10-12 16:45:46 +00:00
- router
2022-12-02 08:21:58 +00:00
dns: ${SF_NET_VPN_DNS_IP}
2022-09-28 09:49:46 +00:00
cap_add:
- NET_ADMIN #required
environment:
- CONFIG=${SF_CRYPTOSTORM_CONFIG:-}
2022-10-08 08:30:59 +00:00
- PROVIDER=CryptoStorm
2023-03-25 20:28:41 +00:00
- NETWORK=${SF_NET_LG}
2023-06-09 09:22:58 +00:00
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP}
2022-09-28 09:49:46 +00:00
- DNS=1.1.1.1 # Cryptostorm's DNS is often broken
2022-10-08 08:30:59 +00:00
- POST_UP=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-cryptostorm.log up %i
- PRE_DOWN=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-cryptostorm.log down %i
2022-09-28 09:49:46 +00:00
- RECONNECT=604800 # Re-Connect every 7 days
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2022-10-08 08:30:59 +00:00
- SF_DEBUG
2022-09-28 09:49:46 +00:00
networks:
vpn-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_CRYPTOSTORM_IP}
2022-09-28 09:49:46 +00:00
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
- net.ipv4.conf.all.rp_filter=2
- net.ipv4.ip_forward=1
2023-08-14 10:22:59 +00:00
- net.ipv4.conf.all.src_valid_mark=1 # SNAT
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_frag6_timeout=10
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
2023-04-26 17:57:44 +00:00
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=5 # default is 30, 5 because of reverse tunnels (CS)
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2022-09-28 09:49:46 +00:00
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/run/vpn:/sf/run/vpn" # Between all VPNs
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-09-28 09:49:46 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2023-11-07 08:17:51 +00:00
# entrypoint: sleep infinity # FIXME-TESTING
2023-08-14 10:22:59 +00:00
2022-09-28 09:49:46 +00:00
mullvad:
image: hackerschoice/cryptostorm
2022-10-08 08:30:59 +00:00
container_name: sf-mullvad
2023-03-24 10:23:04 +00:00
restart: "no"
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-09-28 09:49:46 +00:00
depends_on:
- dnsmasq
2022-10-08 08:30:59 +00:00
- sf-redis
2022-10-12 16:45:46 +00:00
- router
2022-12-02 08:21:58 +00:00
dns: ${SF_NET_VPN_DNS_IP}
2022-09-28 09:49:46 +00:00
cap_add:
- NET_ADMIN #required
environment:
- CONFIG=${SF_MULLVAD_CONFIG:-}
2022-10-08 08:30:59 +00:00
- PROVIDER=Mullvad
2023-03-26 05:40:47 +00:00
- NETWORK=${SF_NET_LG}
2023-06-09 09:22:58 +00:00
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP}
2023-04-26 17:57:44 +00:00
- IS_REDIRECTS_DNS=1
2022-10-08 08:30:59 +00:00
- POST_UP=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-mullvad.log up %i
- PRE_DOWN=/sf/bin/vpn_wg2status.sh /sf/run/vpn/status-mullvad.log down %i
2022-09-28 09:49:46 +00:00
- RECONNECT=604800 # Re-Connect every 7 days
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2022-10-08 08:30:59 +00:00
- SF_DEBUG
2022-09-28 09:49:46 +00:00
networks:
vpn-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_MULLVAD_IP}
2022-09-28 09:49:46 +00:00
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
- net.ipv4.conf.all.rp_filter=2
- net.ipv4.ip_forward=1
2023-08-14 10:22:59 +00:00
- net.ipv4.conf.all.src_valid_mark=1 # SNAT
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_frag6_timeout=10
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=1 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2022-09-28 09:49:46 +00:00
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/run/vpn:/sf/run/vpn" # Between all VPNs
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-09-28 09:49:46 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-07-25 12:42:33 +00:00
2023-03-24 10:23:04 +00:00
novpn:
build: router
image: sf-router
hostname: sf-novpn
container_name: sf-novpn
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
depends_on:
- dnsmasq
- sf-redis
- router
cap_add:
- NET_ADMIN #required
environment:
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2023-03-25 20:28:41 +00:00
- NET_LG=${SF_NET_LG:?}
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP:?}
2023-03-24 10:23:04 +00:00
- SF_NOVPN_IP=${SF_NOVPN_IP}
2023-03-26 05:40:47 +00:00
- PROVIDER=NoVPN
2023-03-24 10:23:04 +00:00
- SF_DIRECT
- SF_DEBUG
networks:
vpn-net:
ipv4_address: ${SF_NOVPN_IP}
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
- net.ipv4.conf.all.rp_filter=2
- net.ipv4.ip_forward=1
2023-03-25 07:41:38 +00:00
- net.netfilter.nf_conntrack_frag6_timeout=10
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=1 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2023-03-24 10:23:04 +00:00
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/run/vpn:/sf/run/vpn" # Between all VPNs
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
entrypoint: ["/init-novpn.sh"]
2022-07-25 12:42:33 +00:00
router:
build: router
2022-07-27 14:26:03 +00:00
image: sf-router
2022-09-28 09:49:46 +00:00
hostname: sf-router
2022-10-16 15:14:16 +00:00
container_name: sf-router
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-07-25 12:42:33 +00:00
depends_on:
- router-fix-network
networks:
2022-08-03 06:46:08 +00:00
incoming-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NET_DIRECT_ROUTER_IP}
2022-07-30 22:12:55 +00:00
vpn-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NET_VPN_ROUTER_IP}
2022-07-25 12:42:33 +00:00
guest-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NET_LG_ROUTER_IP_DUMMY} # Will be replaced by init.sh with x.x.x.1
2022-08-09 19:29:11 +00:00
access-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NET_ACCESS_ROUTER_IP}
2022-08-09 13:05:52 +00:00
dmz-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NET_DMZ_ROUTER_IP}
2022-07-25 12:42:33 +00:00
cap_add:
- NET_ADMIN
2022-08-03 06:46:08 +00:00
sysctls:
- net.ipv4.conf.all.src_valid_mark=1 # SNAT
2022-09-17 18:39:19 +00:00
- net.ipv4.conf.all.rp_filter=2
2022-11-25 11:35:31 +00:00
- net.netfilter.nf_conntrack_frag6_timeout=10
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
2023-04-26 17:57:44 +00:00
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=5 # default is 30, 5 because of reverse tunnels (sf-router)
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2022-08-03 06:46:08 +00:00
ports:
- "${SF_SSH_PORT:-22}:22"
2022-10-12 16:45:46 +00:00
- "${SF_SSH_PORT2:-443}:22"
2022-07-25 12:42:33 +00:00
environment:
2022-07-28 13:33:08 +00:00
- SF_DEBUG
- SF_MAXOUT
- SF_MAXIN
2022-12-02 08:21:58 +00:00
- NET_LG=${SF_NET_LG:?}
- NET_LG_ROUTER_IP=${SF_NET_LG_ROUTER_IP:?}
- NET_LG_ROUTER_IP_DUMMY=${SF_NET_LG_ROUTER_IP_DUMMY:?}
- NET_VPN=${SF_NET_VPN:?}
- NET_ONION=${SF_NET_ONION:?}
2023-06-09 09:22:58 +00:00
- MULLVAD_ROUTE=${SF_MULLVAD_ROUTE:-10.124.0.0/22}
2022-12-02 08:21:58 +00:00
- TOR_IP=${SF_TOR_IP:?}
2023-03-24 10:23:04 +00:00
- NOVPN_IP=${SF_NOVPN_IP:?}
2022-12-02 08:21:58 +00:00
- GSNC_IP=${SF_GSNC_IP:?}
- SSHD_IP=${SF_SSHD_IP:?}
- NGINX_IP=${SF_NGINX_IP:?}
2023-05-03 15:45:23 +00:00
- RPC_IP=${SF_RPC_IP:?}
2022-12-02 08:21:58 +00:00
- NET_DIRECT_ROUTER_IP=${SF_NET_DIRECT_ROUTER_IP:?}
- NET_DIRECT_BRIDGE_IP=${SF_NET_DIRECT_BRIDGE_IP:?}
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP:?}
2023-02-21 06:49:57 +00:00
- NET_VPN_DNS_IP=${SF_NET_VPN_DNS_IP:?}
2022-12-02 08:21:58 +00:00
- NET_ACCESS_ROUTER_IP=${SF_NET_ACCESS_ROUTER_IP:?}
- NET_DMZ_ROUTER_IP=${SF_NET_DMZ_ROUTER_IP:?}
2023-03-24 10:23:04 +00:00
- SF_DIRECT
2022-12-02 08:21:58 +00:00
- SF_NORDVPN_IP=${SF_NORDVPN_IP:?}
- SF_CRYPTOSTORM_IP=${SF_CRYPTOSTORM_IP:?}
- SF_MULLVAD_IP=${SF_MULLVAD_IP:?}
2023-11-07 08:17:51 +00:00
- SF_GUEST_MTU=${SF_GUEST_MTU:-1420}
2022-07-27 14:26:03 +00:00
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/run:/sf/run"
- "${SF_BASEDIR:-.}/config/db:/config/db:ro"
2022-09-18 11:42:52 +00:00
- "${SF_BASEDIR:-.}/config/etc/sf:/config/host/etc/sf:ro"
2022-09-17 18:39:19 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
2022-11-25 11:35:31 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-07-25 12:42:33 +00:00
entrypoint: ["/init.sh"]
2022-12-16 23:31:12 +00:00
# The master for modifying other containers
# - Set default routes
# - Retrieve dmesg
# - Set WireGuard routes for FOB
2022-12-06 16:03:56 +00:00
master:
build: master
image: sf-master
hostname: sf-master
container_name: sf-master
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-12-16 23:31:12 +00:00
depends_on:
- sf-redis
2023-03-01 10:25:56 +00:00
network_mode: none
2024-01-19 17:18:58 +00:00
dns: ${SF_NET_VPN_DNS_IP}
2022-12-06 16:03:56 +00:00
cap_add:
- NET_ADMIN
2022-12-16 23:31:12 +00:00
- SYS_ADMIN # For nsenter
- SYSLOG # For dmesg
pid: "host" # For nsenter
2024-01-19 17:18:58 +00:00
devices:
- "/dev/net/tun:/dev/net/tun"
2022-12-06 16:03:56 +00:00
environment:
- SF_DEBUG
2022-12-16 23:31:12 +00:00
- SF_FQDN=${SF_FQDN:-SF_FQDN-NOT-SET.hack.segfault.net}
2023-05-22 16:51:12 +00:00
- WG_EP_IP=${SF_IP}
2022-12-16 23:31:12 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
- SF_RPC_IP=${SF_RPC_IP:?}
2023-02-19 17:15:42 +00:00
- SF_TOR_IP=${SF_TOR_IP:?}
2024-01-19 17:18:58 +00:00
- SF_NET_ONION=${SF_NET_ONION:?}
2023-06-09 09:22:58 +00:00
- WG_IPS=${SF_WG_IPS:-172.16.0.x/16,fd:16::x/104}
- SF_MULLVAD_ROUTE=${SF_MULLVAD_ROUTE:?}
2022-12-16 23:31:12 +00:00
- SF_DNS=${SF_NET_VPN_DNS_IP}
- SF_NET_LG_ROUTER_IP=${SF_NET_LG_ROUTER_IP:?}
2023-11-07 08:17:51 +00:00
- SF_HOST_MTU=${SF_HOST_MTU:-1500}
2024-01-19 17:18:58 +00:00
- SF_GUEST_MTU=${SF_GUEST_MTU:-1420}
2022-12-06 16:03:56 +00:00
volumes:
2023-05-22 16:51:12 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}:/dev/shm/sf"
2022-12-16 23:31:12 +00:00
- "${SF_BASEDIR:-.}/config/db:/config/db"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2022-12-06 16:03:56 +00:00
- "${SF_BASEDIR:-.}/config/etc/sf:/config/host/etc/sf:ro"
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2024-01-19 17:18:58 +00:00
# - "/research/segfault/sfbin:/sf/bin:ro" # FIXME-2022
2022-12-16 23:31:12 +00:00
- "/var/run/docker.sock:/var/run/docker.sock"
2023-05-22 16:51:12 +00:00
# - /research/segfault/master/cgi-bin:/cgi-bin:ro # FIXME-2022
2022-12-06 16:03:56 +00:00
entrypoint: ["/init-master.sh"]
2022-12-16 23:31:12 +00:00
rpc:
image: nginx
container_name: sf-rpc
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-12-16 23:31:12 +00:00
depends_on:
- master
networks:
guest-net:
ipv4_address: ${SF_RPC_IP}
2023-01-05 19:03:25 +00:00
dns: 255.255.255.255
2022-12-16 23:31:12 +00:00
entrypoint: ["nginx", "-g", "daemon off;"]
volumes:
2023-05-22 16:51:12 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}:/dev/shm/sf"
2023-06-12 06:11:22 +00:00
- "${SF_BASEDIR:-.}/config/db:/config/db"
2022-12-16 23:31:12 +00:00
- "${SF_BASEDIR:-.}/config/etc/nginx/nginx-rpc.conf:/etc/nginx/nginx.conf:ro"
2022-12-06 16:03:56 +00:00
wg:
build: router
image: sf-router
hostname: sf-wg
container_name: sf-wg
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}:1 # Try 1 restart
cgroup_parent: sf.slice
2022-12-06 16:03:56 +00:00
depends_on:
- router-fix-network
networks:
incoming-net:
ipv4_address: ${SF_NET_DIRECT_WG_IP}
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.conf.all.src_valid_mark=1 # SNAT
- net.ipv4.conf.all.rp_filter=2
- net.netfilter.nf_conntrack_frag6_timeout=10
2023-03-25 07:25:24 +00:00
- net.netfilter.nf_conntrack_generic_timeout=180 # default is 600
- net.netfilter.nf_conntrack_tcp_timeout_syn_sent=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_syn_recv=1 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_last_ack=5 # default is 30
- net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 # default is 120
- net.netfilter.nf_conntrack_tcp_timeout_close=1 # default is 10
- net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 # default is 60
- net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30 # default is 300
- net.netfilter.nf_conntrack_tcp_timeout_established=10800 # 3h, default is 5 days
- net.netfilter.nf_conntrack_icmp_timeout=10 # default is 30
- net.netfilter.nf_conntrack_udp_timeout=10 # default is 30
# - net.nf_conntrack_udp_timeout_stream= # leave as default of 120
2022-12-06 16:03:56 +00:00
environment:
- SF_DEBUG
volumes:
- "${SF_SHMDIR:-/dev/shm/sf}/run/vpn:/sf/run/vpn"
- "${SF_BASEDIR:-.}/config/etc/sf:/config/host/etc/sf:ro"
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest" # vpn_status to guest
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
entrypoint: ["/init-wg.sh"]
2022-12-02 08:21:58 +00:00
2022-07-25 12:42:33 +00:00
router-fix-network:
2022-07-28 17:20:55 +00:00
build: router
2022-07-25 12:42:33 +00:00
image: sf-router
2023-01-05 19:03:25 +00:00
container_name: sf-fix-network
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}:1 # Try 1 restart
cgroup_parent: sf.slice
2022-07-25 12:42:33 +00:00
network_mode: host # host's stack
2023-01-05 19:03:25 +00:00
privileged: true # For 'sysctl -w' in fix-network.sh
2022-07-25 12:42:33 +00:00
cap_add:
- NET_ADMIN
environment:
2022-07-28 13:33:08 +00:00
- SF_DEBUG
2022-12-02 08:21:58 +00:00
- NET_LG_ROUTER_IP=${SF_NET_LG_ROUTER_IP:?}
2023-01-05 19:03:25 +00:00
- NET_DIRECT_WG_IP=${SF_NET_DIRECT_WG_IP:?}
- NET_DIRECT_ROUTER_IP=${SF_NET_DIRECT_ROUTER_IP:?}
- NET_DIRECT_BRIDGE_IP=${SF_NET_DIRECT_BRIDGE_IP:?}
volumes:
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2022-07-25 12:42:33 +00:00
entrypoint: ["/fix-network.sh"]
2022-03-08 18:15:37 +00:00
tor:
2022-05-20 15:59:45 +00:00
build: tor
2022-07-27 14:26:03 +00:00
image: sf-tor
2022-11-25 11:35:31 +00:00
container_name: sf-tor
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-09-28 09:49:46 +00:00
hostname: sf-tor
2022-03-08 18:15:37 +00:00
networks:
2022-07-30 22:12:55 +00:00
vpn-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_TOR_IP}
2022-07-27 14:26:03 +00:00
cap_add:
2022-10-28 07:02:12 +00:00
- NET_ADMIN
2022-11-25 11:35:31 +00:00
environment:
- SF_DEBUG
- SF_TOR_VIA_VPN
2023-04-26 17:57:44 +00:00
- NET_LG=${SF_NET_LG:?}
- SSHD_IP=${SF_SSHD_IP:?}
- NGINX_IP=${SF_NGINX_IP:?}
- NET_VPN_ROUTER_IP=${SF_NET_VPN_ROUTER_IP:?}
2022-12-16 23:31:12 +00:00
dns: ${SF_NET_VPN_DNS_IP}
2022-03-08 18:15:37 +00:00
depends_on:
- dnsmasq
2022-05-20 15:59:45 +00:00
- nginx
volumes:
2022-07-28 13:33:08 +00:00
- "${SF_BASEDIR:-.}/config/${SF_FQDN:-SF_FQDN-NOT-SET.hack.segfault.net}/tor/hidden:/var/lib/tor/hidden"
2022-09-18 11:42:52 +00:00
- "${SF_BASEDIR:-.}/config/etc/tor:/config/host/etc/tor:ro"
2022-09-09 14:19:46 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest"
2022-03-08 18:15:37 +00:00
2022-07-28 13:33:08 +00:00
gsnc:
build: gsnc
image: sf-gsnc
2022-11-25 11:35:31 +00:00
container_name: sf-gsnc
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-08-09 13:05:52 +00:00
networks:
2022-08-09 19:29:11 +00:00
access-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_GSNC_IP}
dns: ${SF_NET_ACCESS_DNS_IP}
2022-08-09 13:05:52 +00:00
cap_add:
2022-12-16 23:31:12 +00:00
- NET_ADMIN # need to set default route via sf-router
2022-07-28 13:33:08 +00:00
depends_on:
2022-08-09 13:05:52 +00:00
- dnsmasq
2022-07-28 13:33:08 +00:00
- router
environment:
- SF_SSH_PORT=${SF_SSH_PORT:-22}
- SF_FQDN=${SF_FQDN:-SF_FQDN-NOT-SET.hack.segfault.net}
- SF_DEBUG
2022-10-11 12:51:11 +00:00
- SF_SEED=${SF_SEED}
2022-12-02 08:21:58 +00:00
- SSHD_IP=${SF_SSHD_IP}
2022-07-28 13:33:08 +00:00
volumes:
2022-09-09 14:19:46 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest"
2022-12-02 08:21:58 +00:00
entrypoint: ["/sf-gsnc.sh", "${SF_SSHD_IP}"]
2022-07-28 13:33:08 +00:00
2022-05-10 15:39:52 +00:00
segfault:
2022-03-08 18:15:37 +00:00
build: host
2022-07-27 14:26:03 +00:00
image: sf-host
# /bin/segfaultsh need to know the container name; set it to sf-host statically
container_name: sf-host
2023-02-19 17:15:42 +00:00
restart: ${SF_RESTART:-on-failure}
cgroup_parent: sf.slice
2022-07-28 13:33:08 +00:00
networks:
2022-10-08 08:30:59 +00:00
# WARNING: sshd's port forward/socks can access those networks.
2022-08-09 19:29:11 +00:00
access-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_SSHD_IP}
dns: ${SF_NET_ACCESS_DNS_IP}
2022-08-03 06:46:08 +00:00
cap_add:
2022-12-16 23:31:12 +00:00
- NET_ADMIN # need to set default route via sf-router
2023-01-25 22:17:02 +00:00
- SYS_ADMIN # Move non-priv sshd to guest's network Namespace (setns())
2023-05-06 15:23:59 +00:00
- SYS_PTRACE # needed for debugging (/bin/sf_trace)
2023-01-25 22:17:02 +00:00
pid: host # Move non-priv sshd to guest's network NameSpace.
2022-03-08 18:15:37 +00:00
depends_on:
- dnsmasq
2022-08-09 13:05:52 +00:00
- router
2022-10-08 08:30:59 +00:00
- sf-encfsd
2022-05-10 15:39:52 +00:00
init: true
2022-07-27 14:26:03 +00:00
# SSHD clears all environment variables before spwaning a shell (segfaultsh).
# Add any variables to docker_sshd.sh as well.
environment:
2023-02-19 17:15:42 +00:00
- SF_CG_PARENT=${SF_CG_PARENT:-sf-guest.slice}
2022-12-02 08:21:58 +00:00
- SF_DNS=${SF_NET_VPN_DNS_IP} # passed to sf-guest
2022-12-16 23:31:12 +00:00
- SF_TOR_IP=${SF_TOR_IP}
2022-07-27 14:26:03 +00:00
- SF_BASEDIR=${SF_BASEDIR}
2022-07-28 16:02:58 +00:00
- SF_SHMDIR=${SF_SHMDIR:-/dev/shm/sf}
2022-07-27 14:26:03 +00:00
- SF_USER=${SF_USER:-root}
- SF_USER_PASSWORD=${SF_USER_PASSWORD:-segfault}
- SF_FQDN=${SF_FQDN:-SF_FQDN-NOT-SET.hack.segfault.net}
2022-10-11 12:51:11 +00:00
- SF_REDIS_AUTH=${SF_REDIS_AUTH}
2022-12-16 23:31:12 +00:00
- SF_RPC_IP=${SF_RPC_IP}
2023-05-06 15:23:59 +00:00
- SF_NET_LG_ROUTER_IP=${SF_NET_LG_ROUTER_IP:?}
2022-10-11 12:51:11 +00:00
- SF_SEED=${SF_SEED}
2023-03-01 10:25:56 +00:00
- SF_HM_SIZE_LG=8
2023-03-24 10:23:04 +00:00
- SF_DIRECT
2022-07-28 13:33:08 +00:00
- SF_DEBUG
2023-04-25 10:31:33 +00:00
- SF_BACKING_FS
2023-11-07 08:17:51 +00:00
# - SF_DEBUG_SSHD=1 # FIXME-TESTING sshd debug
2022-03-08 18:15:37 +00:00
volumes:
2022-09-18 11:42:52 +00:00
- "${SF_BASEDIR:-.}/config:/config/host"
2022-10-08 08:30:59 +00:00
- "${SF_BASEDIR:-.}/data/share:/sf/share:ro"
2023-12-13 16:23:45 +00:00
- "${SF_BASEDIR:-.}/data/ext:/sf/ext:ro"
2022-12-16 23:31:12 +00:00
- "${SF_BASEDIR:-.}/sfbin:/sf/bin:ro"
2023-02-19 17:15:42 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run:/sf/run"
2022-09-09 14:19:46 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/encfs-sec/www-root:/sec/www-root:slave"
- "${SF_SHMDIR:-/dev/shm/sf}/config-for-guest:/config/guest"
2023-06-12 06:11:22 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/self-for-guest:/config/self-for-guest"
2022-03-08 18:15:37 +00:00
- "/var/run/docker.sock:/var/run/docker.sock"
2023-05-10 10:57:17 +00:00
- "/var/lib/lxcfs:/var/lib/lxcfs:ro"
2023-03-01 10:25:56 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/run/redis/sock:/redis-sock"
2023-12-13 16:23:45 +00:00
# - /research/segfault/host/fs-root/bin/segfaultsh:/bin/segfaultsh:ro # FIXME-TESTING
2023-11-07 08:17:51 +00:00
# - /research/segfault/host:/host:ro # FIXME-TESTING sshd debug
2022-03-08 18:15:37 +00:00
2022-05-20 15:59:45 +00:00
nginx:
image: nginx
2022-11-25 11:35:31 +00:00
container_name: sf-nginx
2022-07-28 20:23:47 +00:00
restart: ${SF_RESTART:-on-failure}
2023-02-19 17:15:42 +00:00
cgroup_parent: sf.slice
2022-07-25 12:42:33 +00:00
depends_on:
2022-10-08 08:30:59 +00:00
- sf-encfsd
2022-08-02 10:07:05 +00:00
entrypoint: ["/sf/bin/wait_semaphore.sh", "/sec/.IS-ENCRYPTED", "nginx", "-g", "daemon off;"]
2022-05-20 15:59:45 +00:00
networks:
2022-08-09 13:05:52 +00:00
dmz-net:
2022-12-02 08:21:58 +00:00
ipv4_address: ${SF_NGINX_IP}
2022-08-09 13:05:52 +00:00
dns: 255.255.255.255
2022-05-20 15:59:45 +00:00
volumes:
2022-09-09 14:19:46 +00:00
- "${SF_BASEDIR:-.}/sfbin/wait_semaphore.sh:/sf/bin/wait_semaphore.sh:ro"
2022-08-02 10:07:05 +00:00
- "${SF_SHMDIR:-/dev/shm/sf}/encfs-sec/www-root:/sec:slave,ro"
2022-07-27 14:26:03 +00:00
- "${SF_BASEDIR:-.}/config/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
2022-05-20 15:59:45 +00:00
2022-03-08 11:17:29 +00:00
networks:
2023-11-07 08:17:51 +00:00
# Force docker0
default:
driver: bridge
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-07-30 22:12:55 +00:00
vpn-net:
name: sf-vpn
2022-07-25 12:42:33 +00:00
driver: bridge
2023-11-07 08:17:51 +00:00
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-07-25 12:42:33 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_VPN:?}
2022-07-25 12:42:33 +00:00
2022-08-03 06:46:08 +00:00
incoming-net:
2022-11-27 13:17:00 +00:00
# Note: 'name' must be the first in alphabetic order. Docker forwards
# the host's port to the _first_ network (in alphanetic order). sf-router
2022-12-02 08:21:58 +00:00
# expects all host traffic to arrive at SF_NET_DIRECT_ROUTE_IP.
2022-11-27 13:17:00 +00:00
name: A-sf-direct
2022-08-03 06:46:08 +00:00
driver: bridge
2023-11-07 08:17:51 +00:00
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-08-03 06:46:08 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_DIRECT:?}
2022-08-03 06:46:08 +00:00
2022-08-09 19:29:11 +00:00
access-net:
2022-11-25 11:35:31 +00:00
# sf-host and gsnc
2022-08-09 19:29:11 +00:00
name: sf-access
2022-08-03 06:46:08 +00:00
driver: bridge
2023-11-07 08:17:51 +00:00
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-08-03 06:46:08 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_ACCESS:?}
2022-08-03 06:46:08 +00:00
2022-08-09 13:05:52 +00:00
dmz-net:
name: sf-dmz
2022-05-20 15:59:45 +00:00
driver: bridge
2023-11-07 08:17:51 +00:00
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-07-28 16:02:58 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_DMZ:?}
2022-05-20 15:59:45 +00:00
2022-03-08 18:15:37 +00:00
dns-doh-net:
2022-07-30 22:12:55 +00:00
name: sf-dns-doh
2022-03-08 18:15:37 +00:00
driver: bridge
2023-11-07 08:17:51 +00:00
driver_opts:
com.docker.network.driver.mtu: ${SF_HOST_MTU:-1500}
2022-03-08 18:15:37 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_DOH:?}
2022-03-08 18:15:37 +00:00
2022-07-25 12:42:33 +00:00
# User's shell
2022-03-08 18:15:37 +00:00
guest-net:
2022-07-30 22:12:55 +00:00
name: sf-guest
2022-03-08 18:15:37 +00:00
driver: bridge
2023-08-14 10:22:59 +00:00
driver_opts:
2023-11-07 08:17:51 +00:00
com.docker.network.driver.mtu: ${SF_GUEST_MTU:-1420}
2022-12-02 08:21:58 +00:00
# Can not use 'internal'. This will only remvoe the host's bridge
# but this also means we can not route via 10.11.0.* even if we can
# ping the router.
# internal: true
2022-03-08 18:15:37 +00:00
ipam:
config:
2023-05-10 10:57:17 +00:00
- subnet: ${SF_NET_LG:?}
2022-12-02 08:21:58 +00:00
# gateway: 10.11.0.1 # Set's the IP of the host's bridge.
2022-11-25 11:35:31 +00:00
# 255 hosts. BUG-ARP-CACHE
2022-07-25 12:42:33 +00:00
# default gw is always 10.11.0.1 and is the host side of the bridge (?)
2022-11-25 11:35:31 +00:00
# The init.sh script in sf-router will overwrite it's own interface with 10.11.0.1
# so that the sf-router receives all traffic.