version: "3.9"

services:
  fedilogue:
    build: fedilogue/
    depends_on:
      - db
      - vpn
    cap_add:
      - NET_ADMIN
    ports:
      - "127.0.0.1:5555:5555"
  restapi:
    build: restapi/
    ports:
      - "127.0.0.1:6431:6432"
    depends_on:
      - db
  frontend:
    build: frontend/
    depends_on:
      - restapi
      - db
    ports:
      - "127.0.0.1:8080:8080"
  db:
    image: postgres:alpine
    restart: always
    environment:
      POSTGRES_USER: fedilogue
      POSTGRES_PASSWORD: fedilogue
      POSTGRES_DB: fedilogue
    volumes:
      - ./postgres-data:/var/lib/postgresql
  vpn:
    image: bubuntux/nordvpn
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.rp_filter=2
    devices:
      - /dev/net/tun
    environment:
      - USER=${NORDVPNUSER}
      - "PASS=${NORDVPNPASS}"
      - CONNECT=United_States
      - TECHNOLOGY=NordLynx
    ulimits:
      memlock:
        soft: -1
        hard: -1