diff --git a/files/docker/fedi/Phanpy.Dockerfile b/files/docker/fedi/Phanpy.Dockerfile new file mode 100644 index 0000000..abdfa00 --- /dev/null +++ b/files/docker/fedi/Phanpy.Dockerfile @@ -0,0 +1,29 @@ +FROM node:20-alpine AS builder + +ARG PHANPY_CLIENT_NAME="Phanpy" +ARG PHANPY_WEBSITE="https://phanpy.social" +ARG PHANPY_LINGVA_INSTANCES="lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud" +ARG PHANPY_PRIVACY_POLICY_URL="https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD" +ARG PHANPY_DEFAULT_INSTANCE="mastodon.social" + +ENV PHANPY_CLIENT_NAME=${PHANPY_CLIENT_NAME} \ + PHANPY_WEBSITE=${PHANPY_WEBSITE} \ + PHANPY_LINGVA_INSTANCES=${PHANPY_LINGVA_INSTANCES} \ + PHANPY_PRIVACY_POLICY_URL=${PHANPY_PRIVACY_POLICY_URL} \ + PHANPY_DEFAULT_INSTANCE=${PHANPY_DEFAULT_INSTANCE} + +WORKDIR /app + +RUN apk add --no-cache --virtual .build-deps git && \ + git clone --depth 1 -b production https://github.com/cheeaun/phanpy.git . && \ + npm install && \ + npm run build && \ + apk del .build-deps + +FROM nginx:alpine + +RUN echo -e 'server_tokens off;\nclient_max_body_size 99m;' > /etc/nginx/conf.d/custom.conf + +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 diff --git a/files/docker/fedi/docker-stack.yaml b/files/docker/fedi/docker-stack.yaml index 1410726..e7c9b28 100644 --- a/files/docker/fedi/docker-stack.yaml +++ b/files/docker/fedi/docker-stack.yaml @@ -3,6 +3,11 @@ services: image: ghcr.io/fedify-dev/hollo:canary env_file: - .env + networks: + - default + - reverse_proxy + dns: + - 1.1.1.1 deploy: rollback_config: failure_action: continue @@ -15,7 +20,7 @@ services: - node.labels.services_kind==${SERVICE_KIND:-common} labels: - traefik.enable=true - - traefik.http.routers.hollo.rule=Host(`hollo.alecodes.page`) + - traefik.http.routers.hollo.rule=Host(`fedi.alecodes.page`) - traefik.http.services.hollo.loadbalancer.server.port=3000 hollo_db: @@ -35,6 +40,29 @@ services: placement: constraints: - node.labels.services_kind==${SERVICE_KIND:-common} + phanpy: + image: ghcr.io/yitsushi/phanpy-docker:2024.04.04.65d51b0 + networks: + - reverse_proxy + deploy: + labels: + - "homepage.group=Social" + - "homepage.icon=/icons/phanpy.png" + - "homepage.name=Phanpy" + - "homepage.href=https://phanpy.alecodes.page/" + - "homepage.description=Alternative Mastodon Web Client" + + - traefik.enable=true + - traefik.http.routers.hollo-ui.rule=Host(`phanpy.alecodes.page`) + - traefik.http.services.hollo-ui.loadbalancer.server.port=80 + +networks: + phanpy-network: + driver: bridge volumes: hollo_db: + +networks: + reverse_proxy: + external: true