add rxresume

This commit is contained in:
L4RM4ND 2023-04-28 14:10:52 +02:00
parent 465a67aa3d
commit ad9cf8f520
3 changed files with 114 additions and 0 deletions

View File

@ -162,6 +162,7 @@ docker compose up
- [Obsidian-Gitsync-Perlite](https://github.com/l4rm4nd/Obsidian-Gitsync-Perlite) - Continuously sync Obsidian markdown notes from GitHub and publish it for the webs.
- [Obsidian-Remote](examples/obsidian-remote) - This docker image allows you to run obsidian in docker as a container and access it via your web browser.
- [Memos](examples/memos) - An open-source, self-hosted memo hub with knowledge management and social networking.
- [Reactive-Resume](examples/rxresume) - A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever.
### Analytics
- [Matomo](examples/matomo) - Matomo is the leading Free/Libre open analytics platform.
@ -209,6 +210,7 @@ docker compose up
- [Rocket.Chat](examples/rocketchat) - Rocket.Chat is an open-source fully customizable communications platform developed in JavaScript for organizations with high standards of data protection.
- [Answer](examples/answer) - An open-source knowledge-based community software. You can use it quickly to build Q&A community for your products, customers, teams, and more.
- [Excalidraw](examples/excalidraw) - Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.
- [Reactive-Resume](examples/rxresume) - A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever.
### Project Management
- [JetBrains YouTrack](examples/youtrack) - YouTrack is a proprietary, commercial browser-based bug tracker, issue tracking system and project management software developed by JetBrains.

View File

@ -0,0 +1,13 @@
# Reference
https://github.com/AmruthPillai/Reactive-Resume
# Notes
Make sure that you expose both the client and server container behind the same (sub)domain.
Otherwise, you'll receive CORS errors, as the Same Origin Policy (SOP) will prevent access from Domain A (client) to Domain B (server).
So let both run on the same domain and tell your reverse proxy (here traefik) that the server container will handle all /api requests.
If you use Nginx Proxy Manager as reverse proxy, may have a read [here](https://github.com/AmruthPillai/Reactive-Resume/issues/721#issuecomment-1405283786).

View File

@ -0,0 +1,99 @@
version: "3.8"
services:
postgres:
image: postgres:alpine
container_name: rxresume-db
restart: always
expose:
- 5432
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/rxresume/postgresql:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
start_period: 15s
interval: 30s
timeout: 30s
retries: 3
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- proxy
server:
image: amruthpillai/reactive-resume:server-latest
container_name: rxresume-server
restart: always
expose:
- 3100
depends_on:
- postgres
environment:
- PUBLIC_URL=https://resume.example.com
- PUBLIC_SERVER_URL=https://resume.example.com/api # only change the subdomain, leave /api as is
- SERVER_URL=https://resume.example.com/api # only change the subdomain, leave /api as is
- PUBLIC_GOOGLE_CLIENT_ID=
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- SECRET_KEY=change-me-to-something-secure
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_SSL_CERT=
- JWT_SECRET=change-me-to-something-secure
- JWT_EXPIRY_TIME=604800
- GOOGLE_CLIENT_SECRET=
- GOOGLE_API_KEY=
- MAIL_FROM_NAME=Reactive Resume
- MAIL_FROM_EMAIL=noreply@rxresu.me
- MAIL_HOST=
- MAIL_PORT=
- MAIL_USERNAME=
- MAIL_PASSWORD=
- STORAGE_BUCKET=
- STORAGE_REGION=
- STORAGE_ENDPOINT=
- STORAGE_URL_PREFIX=
- STORAGE_ACCESS_KEY=
- STORAGE_SECRET_KEY=
- PDF_DELETION_TIME=
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.rxresume-server.rule=Host(`resume.example.com`) && PathPrefix(`/api`) # only change the subdomain, leave /api as is
- traefik.http.services.rxresume-server.loadbalancer.server.port=3100
- traefik.docker.network=proxy
# Part for optional traefik middlewares
- traefik.http.routers.rxresume-server.middlewares=path-strip # may add local-ipwhitelist@file for access control
- traefik.http.middlewares.path-strip.stripprefix.prefixes=/api
- traefik.http.middlewares.path-strip.stripprefix.forceSlash=false
client:
image: amruthpillai/reactive-resume:client-latest
container_name: rxresume-client
restart: always
expose:
- 3000
depends_on:
- server
environment:
- PUBLIC_URL=https://resume.example.com
- PUBLIC_SERVER_URL=https://resume.example.com/api # only change the subdomain, leave /api as is
- SERVER_URL=https://resume.example.com/api # only change the subdomain, leave /api as is
- PUBLIC_GOOGLE_CLIENT_ID=
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.rxresume-client.rule=Host(`resume.example.com`)
- traefik.http.services.rxresume-client.loadbalancer.server.port=3000
- traefik.docker.network=proxy
# Part for optional traefik middlewares
#- traefik.http.routers.rxresume-client.middlewares=local-ipwhitelist@file # may enable this middleware for access control
networks:
proxy:
external: true