kindness-fund-website/DEPLOYMENT.md

2.5 KiB

Deployment Instructions for dokindthings.fund

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

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