Add Coolify deployment configuration
This commit is contained in:
143
DEPLOYMENT.md
Normal file
143
DEPLOYMENT.md
Normal file
@ -0,0 +1,143 @@
|
||||
# Coolify Deployment Guide
|
||||
|
||||
This guide explains how to deploy the Linux Service website to your self-hosted Coolify instance with automatic updates from your Gitea repository.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Coolify installed and running
|
||||
- Access to your Gitea instance (gitea.boner.be)
|
||||
- Domain name configured for your service
|
||||
|
||||
## Environment Variables
|
||||
|
||||
The application supports the following environment variables:
|
||||
|
||||
| Variable | Default Value | Description |
|
||||
|----------|---------------|-------------|
|
||||
| `PORT` | `8080` | Port the application listens on |
|
||||
| `COMPANY_NAME` | `Hogeland Linux` | Company name displayed on the website |
|
||||
| `KVK` | `12345678` | KVK number for contact information |
|
||||
| `EMAIL` | `info@hogelandlinux.nl` | Contact email address |
|
||||
| `PHONE` | `+31 6 12345678` | Contact phone number |
|
||||
|
||||
## Coolify Deployment Steps
|
||||
|
||||
### 1. Create New Resource in Coolify
|
||||
|
||||
1. Open your Coolify dashboard
|
||||
2. Click "New Resource"
|
||||
3. Select "Public Repository" or "Private Repository" (if your Gitea repo is private)
|
||||
|
||||
### 2. Configure Repository
|
||||
|
||||
**Repository URL:** `https://gitea.boner.be/[your-username]/[repository-name]`
|
||||
|
||||
**Branch:** `master`
|
||||
|
||||
**Build Pack:** `Docker`
|
||||
|
||||
### 3. Configure Build Settings
|
||||
|
||||
- **Dockerfile Location:** `./Dockerfile`
|
||||
- **Build Context:** `.`
|
||||
- **Ports:** `8080`
|
||||
|
||||
### 4. Set Environment Variables
|
||||
|
||||
In the Coolify environment variables section, add:
|
||||
|
||||
```
|
||||
PORT=8080
|
||||
COMPANY_NAME=Hogeland Linux
|
||||
KVK=12345678
|
||||
EMAIL=info@hogelandlinux.nl
|
||||
PHONE=+31 6 12345678
|
||||
```
|
||||
|
||||
### 5. Configure Domain
|
||||
|
||||
- Set your desired domain/subdomain
|
||||
- Coolify will automatically handle SSL certificate generation
|
||||
|
||||
### 6. Enable Auto-Deploy
|
||||
|
||||
1. Go to the "Settings" tab of your application
|
||||
2. Enable "Auto Deploy"
|
||||
3. Set the branch to `master`
|
||||
4. Configure webhook URL in your Gitea repository
|
||||
|
||||
### 7. Gitea Webhook Configuration
|
||||
|
||||
To enable automatic deployments when you push to master:
|
||||
|
||||
1. Go to your repository on gitea.boner.be
|
||||
2. Navigate to Settings → Webhooks
|
||||
3. Click "Add Webhook" → "Gitea"
|
||||
4. Set the Payload URL to your Coolify webhook URL (found in your app settings)
|
||||
5. Set Content Type to `application/json`
|
||||
6. Select "Just the push event"
|
||||
7. Check "Active"
|
||||
8. Click "Add Webhook"
|
||||
|
||||
## Docker Commands for Local Testing
|
||||
|
||||
```bash
|
||||
# Build the image
|
||||
docker build -t linuxservice .
|
||||
|
||||
# Run locally
|
||||
docker run -p 8080:8080 \
|
||||
-e COMPANY_NAME="Hogeland Linux" \
|
||||
-e EMAIL="info@hogelandlinux.nl" \
|
||||
linuxservice
|
||||
|
||||
# Or use docker-compose
|
||||
docker-compose up --build
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
1. **Build Fails**: Check that all files (templates/, static/) are committed to your repository
|
||||
2. **Port Issues**: Ensure PORT environment variable matches the exposed port
|
||||
3. **Template Errors**: Verify that templates directory is included in the Docker image
|
||||
|
||||
### Logs
|
||||
|
||||
Check application logs in Coolify dashboard under the "Logs" tab.
|
||||
|
||||
### Health Check
|
||||
|
||||
The application should respond to `GET /` with the homepage. You can check this endpoint to verify the deployment.
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
linuxservice/
|
||||
├── Dockerfile # Container configuration
|
||||
├── docker-compose.yml # Local development
|
||||
├── .dockerignore # Docker build optimization
|
||||
├── main.go # Go application
|
||||
├── go.mod # Go module definition
|
||||
├── static/ # Static assets (CSS, images, etc.)
|
||||
│ └── style.css
|
||||
├── templates/ # HTML templates
|
||||
│ ├── index.html
|
||||
│ └── contact.html
|
||||
└── DEPLOYMENT.md # This file
|
||||
```
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
- The Docker image uses multi-stage builds for smaller size
|
||||
- Static files are served directly by the Go application
|
||||
- No external dependencies required
|
||||
- Minimal resource usage (suitable for small VPS instances)
|
||||
|
||||
## Security Notes
|
||||
|
||||
- The application runs as a non-root user in the container
|
||||
- Only port 8080 is exposed
|
||||
- No sensitive data is stored in the application
|
||||
- Environment variables should be used for configuration
|
Reference in New Issue
Block a user