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:
-
Go to your GitHub repository settings: https://github.com/Jeff-Emmett/kindness-fund-website/settings/secrets/actions
-
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)
-
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.fundpointing 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