
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 1m1s
73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
# Portfolio Website
|
|
## Setup
|
|
### Domain Records
|
|
Create two A records, one for the web side of the website and one for the api side of the website. Ideally, the records should look something like `myportfolio.example.com` for the web side and `api.myportfolio.example.com`, but it is not important.
|
|
### Reverse Proxy
|
|
- It doesn't matter what reverse proxy you use (Nginx, Apache, Traefik, Caddy, etc)
|
|
1. Point the web domain to the web port (default: 8910)
|
|
2. Point the api domain to the api port (default: 8911)
|
|
### Gmail App Password
|
|
1. Go to your Google [account dashboard](https://myaccount.google.com)
|
|
2. Go to Security > 2-Step Verification > App Passwords > Create a new app password
|
|
3. Copy the 16 character password
|
|
### [Docker Compose](./docker-compose.yml)
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
portfolio:
|
|
container_name: portfolio
|
|
image: git.altaiar.dev/ahmed/portfolio:latest
|
|
environment:
|
|
- NODE_ENV=production
|
|
- API_PROXY_TARGET=http://localhost:8911
|
|
- MAX_HTTP_CONNECTIONS_PER_MINUTE=60
|
|
- SESSION_SECRET=super_secret_session_key_change_me_in_production_please
|
|
- DATABASE_URL=postgresql://redwood:redwood@db:5432/portfolio
|
|
- FIRST_NAME=first name # Your first name
|
|
- LAST_NAME=lastname # Your last name
|
|
- GMAIL=example@gmail.com # The Gmail address associated with the app password created earlier
|
|
- GMAIL_SMTP_PASSWORD=aaaa bbbb cccc dddd # The app password created earlier
|
|
- DOMAIN=portfolio.example.com
|
|
- API_DOMAIN=api.portfolio.example.com
|
|
# Careful, addresses below must not end with a '/'
|
|
- ADDRESS_PROD=https://portfolio.example.com # https://DOMAIN
|
|
- API_ADDRESS_PROD=https://api.portfolio.example.com # https://API_DOMAIN
|
|
ports:
|
|
- '8910:8910' # Web
|
|
- '8911:8911' # API
|
|
depends_on:
|
|
- db
|
|
command: >
|
|
/bin/sh -c "
|
|
yarn rw build &&
|
|
yarn rw prisma migrate deploy &&
|
|
yarn rw prisma db seed &&
|
|
yarn rw serve"
|
|
|
|
|
|
db:
|
|
container_name: portfolio-db
|
|
image: postgres:16-bookworm
|
|
environment:
|
|
POSTGRES_USER: redwood
|
|
POSTGRES_PASSWORD: redwood
|
|
POSTGRES_DB: portfolio
|
|
ports:
|
|
- '5432:5432'
|
|
volumes:
|
|
- postgres:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
postgres:
|
|
```
|
|
## Logging In
|
|
- Once the container is up and running, head to `/login` (`https://portfolio.example.com/login`), default credentials are below
|
|
- If you would like to change the password, head to `/forgot-password` (`https://portfolio.example.com/forgot-password`), the username is `admin`
|
|
- If you correctly set up the Gmail app password, you should receive an email from yourself
|
|
- It contains the link needed to change your password
|
|
### Default Credentials
|
|
**Username:** `admin`
|
|
|
|
**Password:** [`GMAIL_SMTP_PASSWORD`](#gmail-app-password)
|