kindness-fund-website/DEPLOYMENT.md

3.3 KiB

Deployment Instructions for dokindthings.fund

This guide will help you deploy the Kindness Fund website to your private server at dokindthings.fund.

GitHub to Gitea Mirror Setup

This repository is configured to automatically mirror changes from GitHub to Gitea using GitHub Actions. To enable this:

  1. Go to your GitHub repository settings: https://github.com/Jeff-Emmett/kindness-fund-website/settings/secrets/actions

  2. Add the following secrets:

    • GITEA_USERNAME: Your Gitea username (e.g., jeffemmett)
    • GITEA_TOKEN: Your Gitea API token (the same one you used earlier: da10d10da546ac78490140871536cf48166d5c92)
  3. The workflow will automatically:

    • Trigger on every push to the main/master branch
    • Push all branches and tags to your Gitea instance
    • Can also be manually triggered from the Actions tab

This ensures bidirectional syncing between GitHub and Gitea.

Prerequisites

  • Docker and Docker Compose installed on your server
  • Nginx installed and configured
  • Domain dokindthings.fund pointing to your server's IP address
  • SSL certificate (Let's Encrypt recommended)

Step 1: Clone the Repository

On your server, clone the repository from your Gitea instance:

git clone https://gitea.jeffemmett.com/jeffemmett/kindness-fund-website.git
cd kindness-fund-website

Step 2: Build and Start the Docker Container

# Create the external network if it doesn't exist
docker network create web

# Build and start the container
docker compose up -d --build

The application will be available on port 3001 locally.

Step 3: Configure Nginx

Copy the Nginx configuration to your Nginx sites-available directory:

sudo cp nginx/dokindthings.fund.conf /etc/nginx/sites-available/dokindthings.fund
sudo ln -s /etc/nginx/sites-available/dokindthings.fund /etc/nginx/sites-enabled/

Step 4: Set Up SSL Certificate

If you don't have an SSL certificate yet, use Let's Encrypt:

sudo certbot --nginx -d dokindthings.fund -d www.dokindthings.fund

This will automatically obtain and configure the SSL certificate.

If you already have certificates, update the paths in the Nginx configuration file.

Step 5: Test and Reload Nginx

Test the Nginx configuration:

sudo nginx -t

If the test passes, reload Nginx:

sudo systemctl reload nginx

Step 6: Verify Deployment

Visit https://dokindthings.fund in your browser to verify the site is working.

Updating the Site

To update the site with new changes:

cd kindness-fund-website
git pull
docker compose down
docker compose up -d --build

Troubleshooting

Check Docker Container Logs

docker logs kindness-fund-website

Check Nginx Logs

sudo tail -f /var/log/nginx/dokindthings.fund.error.log
sudo tail -f /var/log/nginx/dokindthings.fund.access.log

Check Container Status

docker ps

Rebuild Container

If you need to completely rebuild:

docker compose down
docker compose build --no-cache
docker compose up -d

Notes

  • The application runs on port 3001 internally
  • Nginx acts as a reverse proxy, forwarding HTTPS traffic from port 443 to port 3001
  • The Docker container will automatically restart unless stopped manually
  • Make sure your firewall allows traffic on ports 80 and 443