version: '3' volumes: postgres_data: {} opensearch_data: {} app_cargo_data: {} app_build_data: {} app_deps_data: {} app_native_data: {} services: app: build: context: . dockerfile: ./docker/app/Dockerfile environment: - MIX_ENV=dev - PGPASSWORD=postgres - ANONYMOUS_NAME_SALT=2fmJRo0OgMFe65kyAJBxPT0QtkVes/jnKDdtP21fexsRqiw8TlSY7yO+uFyMZycp - HCAPTCHA_SECRET_KEY=0x0000000000000000000000000000000000000000 - HCAPTCHA_SITE_KEY=10000000-ffff-ffff-ffff-000000000001 - PASSWORD_PEPPER=dn2e0EpZrvBLoxUM3gfQveBhjf0bG/6/bYhrOyq3L3hV9hdo/bimJ+irbDWsuXLP - TUMBLR_API_KEY=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4 - OTP_SECRET_KEY=Wn7O/8DD+qxL0X4X7bvT90wOkVGcA90bIHww4twR03Ci//zq7PnMw8ypqyyT/b/C - ADVERT_FILE_ROOT=adverts - AVATAR_FILE_ROOT=avatars - BADGE_FILE_ROOT=badges - IMAGE_FILE_ROOT=images - TAG_FILE_ROOT=tags - AVATAR_URL_ROOT=/avatars - ADVERT_URL_ROOT=/spns - IMAGE_URL_ROOT=/img - BADGE_URL_ROOT=/badge-img - TAG_URL_ROOT=/tag-img - OPENSEARCH_URL=http://opensearch:9200 - REDIS_HOST=valkey - DATABASE_URL=ecto://postgres:postgres@postgres/philomena_dev - CDN_HOST=localhost - MAILER_ADDRESS=noreply@philomena.local - START_ENDPOINT=true - SITE_DOMAINS=localhost - S3_SCHEME=http - S3_HOST=files - S3_PORT=80 - S3_BUCKET=philomena - AWS_ACCESS_KEY_ID=local-identity - AWS_SECRET_ACCESS_KEY=local-credential working_dir: /srv/philomena tty: true volumes: - .:/srv/philomena - app_cargo_data:/srv/philomena/.cargo - app_build_data:/srv/philomena/_build - app_deps_data:/srv/philomena/deps - app_native_data:/srv/philomena/priv/native depends_on: - postgres - opensearch - valkey ports: - '5173:5173' postgres: image: postgres:16.2-alpine environment: - POSTGRES_PASSWORD=postgres volumes: - postgres_data:/var/lib/postgresql/data logging: driver: "none" opensearch: image: opensearchproject/opensearch:2.14.0 volumes: - opensearch_data:/usr/share/opensearch/data - ./docker/opensearch/opensearch.yml:/usr/share/opensearch/config/opensearch.yml logging: driver: "none" ulimits: nofile: soft: 65536 hard: 65536 valkey: image: valkey/valkey:7.2.5-alpine logging: driver: "none" files: image: andrewgaul/s3proxy:sha-ec12ae0 environment: - JCLOUDS_FILESYSTEM_BASEDIR=/srv/philomena/priv/s3 volumes: - .:/srv/philomena web: build: context: . dockerfile: ./docker/web/Dockerfile args: - APP_DIR=/srv/philomena - S3_SCHEME=http - S3_HOST=files - S3_PORT=80 - S3_BUCKET=philomena volumes: - .:/srv/philomena environment: - AWS_ACCESS_KEY_ID=local-identity - AWS_SECRET_ACCESS_KEY=local-credential logging: driver: "none" depends_on: - app ports: - '8080:80'