359 lines
7.9 KiB
Markdown
359 lines
7.9 KiB
Markdown
# Getting Started
|
|
|
|
Welcome to Changemaker Lite! This guide will help you get up and running on Ubuntu 24.04 LTS (Noble Numbat) with Docker.
|
|
|
|
## System Requirements
|
|
|
|
### Operating System
|
|
- **Ubuntu 24.04 LTS (Noble Numbat)** - Recommended and tested
|
|
- Other Linux distributions with systemd support
|
|
- WSL2 on Windows (limited functionality)
|
|
|
|
### Hardware Requirements
|
|
- **CPU**: 2+ cores (4+ recommended)
|
|
- **RAM**: 4GB minimum (8GB recommended)
|
|
- **Storage**: 20GB+ available disk space
|
|
- **Network**: Stable internet connection
|
|
|
|
### Software Prerequisites
|
|
|
|
1. **Docker Engine** (24.0+)
|
|
```bash
|
|
# Install Docker
|
|
curl -fsSL https://get.docker.com | sudo sh
|
|
|
|
# Add your user to docker group
|
|
sudo usermod -aG docker $USER
|
|
|
|
# Log out and back in for group changes to take effect
|
|
```
|
|
|
|
2. **Docker Compose** (v2.20+)
|
|
```bash
|
|
# Verify Docker Compose v2 is installed
|
|
docker compose version
|
|
```
|
|
|
|
3. **Essential Tools**
|
|
```bash
|
|
# Install required packages
|
|
sudo apt update
|
|
sudo apt install -y git curl jq openssl
|
|
```
|
|
|
|
## Installation
|
|
|
|
### 1. Clone Repository
|
|
|
|
```bash
|
|
git clone https://gitea.bnkops.com/admin/Changemaker.git
|
|
cd changemaker.lite
|
|
```
|
|
|
|
### 2. Run Configuration Wizard
|
|
|
|
The `config.sh` script will guide you through the initial setup:
|
|
|
|
```bash
|
|
./config.sh
|
|
```
|
|
|
|
This wizard will:
|
|
- ✅ Create a `.env` file with secure defaults
|
|
- ✅ Scan for available ports to avoid conflicts
|
|
- ✅ Set up your domain configuration
|
|
- ✅ Generate secure passwords for databases
|
|
- ✅ Configure Cloudflare credentials (optional)
|
|
- ✅ Update all configuration files with your settings
|
|
|
|
#### Configuration Options
|
|
|
|
During setup, you'll be prompted for:
|
|
|
|
1. **Domain Name**: Your primary domain (e.g., `example.com`)
|
|
2. **Cloudflare Settings** (optional):
|
|
- API Token
|
|
- Zone ID
|
|
- Account ID
|
|
3. **Admin Credentials**:
|
|
- Listmonk admin email and password
|
|
- n8n admin email and password
|
|
|
|
### 3. Start Services
|
|
|
|
Launch all services with Docker Compose:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
Wait for services to initialize (first run may take 5-10 minutes):
|
|
|
|
```bash
|
|
# Watch container status
|
|
docker compose ps
|
|
|
|
# View logs
|
|
docker compose logs -f
|
|
```
|
|
|
|
### 4. Verify Installation
|
|
|
|
Check that all services are running:
|
|
|
|
```bash
|
|
docker compose ps
|
|
```
|
|
|
|
Expected output should show all services as "Up":
|
|
- code-server-changemaker
|
|
- listmonk_app
|
|
- listmonk_db
|
|
- mkdocs-changemaker
|
|
- mkdocs-site-server-changemaker
|
|
- n8n-changemaker
|
|
- nocodb
|
|
- root_db
|
|
- homepage-changemaker
|
|
- gitea_changemaker
|
|
- gitea_mysql_changemaker
|
|
- mini-qr
|
|
|
|
## Local Access
|
|
|
|
Once services are running, access them locally:
|
|
|
|
### 🏠 Homepage Dashboard
|
|
- **URL**: http://localhost:3010
|
|
- **Purpose**: Central hub for all services
|
|
- **Features**: Service status, quick links, monitoring
|
|
|
|
### 💻 Development Tools
|
|
- **Code Server**: http://localhost:8888 - VS Code in browser
|
|
- **Gitea**: http://localhost:3030 - Git repository management
|
|
- **MkDocs Dev**: http://localhost:4000 - Live documentation preview
|
|
- **MkDocs Prod**: http://localhost:4001 - Built documentation
|
|
|
|
### 📧 Communication
|
|
- **Listmonk**: http://localhost:9000 - Email campaigns
|
|
- Login with credentials set during configuration
|
|
|
|
### 🔄 Automation & Data
|
|
- **n8n**: http://localhost:5678 - Workflow automation
|
|
- Login with credentials set during configuration
|
|
- **NocoDB**: http://localhost:8090 - No-code database
|
|
|
|
### 🛠️ Interactive Tools
|
|
- **Map Viewer**: http://localhost:3000 - Geographic data visualization
|
|
- **Mini QR**: http://localhost:8089 - QR code generator
|
|
|
|
## Production Deployment
|
|
|
|
### Deploy with Cloudflare Tunnels
|
|
|
|
For secure public access, use the production deployment script:
|
|
|
|
```bash
|
|
./start-production.sh
|
|
```
|
|
|
|
This script will:
|
|
1. Install and configure `cloudflared`
|
|
2. Create a Cloudflare tunnel
|
|
3. Set up DNS records automatically
|
|
4. Configure access policies
|
|
5. Create a systemd service for persistence
|
|
|
|
### What Happens During Production Setup
|
|
|
|
1. **Cloudflare Authentication**: Browser-based login to Cloudflare
|
|
2. **Tunnel Creation**: Secure tunnel named `changemaker-lite`
|
|
3. **DNS Configuration**: Automatic CNAME records for all services
|
|
4. **Access Policies**: Email-based authentication for sensitive services
|
|
5. **Service Installation**: Systemd service for automatic startup
|
|
|
|
### Production URLs
|
|
|
|
After successful deployment, services will be available at:
|
|
|
|
**Public Services**:
|
|
- `https://yourdomain.com` - Main documentation site
|
|
- `https://listmonk.yourdomain.com` - Email campaigns
|
|
- `https://docs.yourdomain.com` - Documentation preview
|
|
- `https://n8n.yourdomain.com` - Automation platform
|
|
- `https://db.yourdomain.com` - NocoDB
|
|
- `https://git.yourdomain.com` - Gitea
|
|
- `https://map.yourdomain.com` - Map viewer
|
|
- `https://qr.yourdomain.com` - QR generator
|
|
|
|
**Protected Services** (require authentication):
|
|
- `https://homepage.yourdomain.com` - Dashboard
|
|
- `https://code.yourdomain.com` - Code Server
|
|
|
|
## Configuration Management
|
|
|
|
### Environment Variables
|
|
|
|
Key settings in `.env` file:
|
|
|
|
```env
|
|
# Domain Configuration
|
|
DOMAIN=yourdomain.com
|
|
BASE_DOMAIN=https://yourdomain.com
|
|
|
|
# Service Ports (automatically assigned to avoid conflicts)
|
|
HOMEPAGE_PORT=3010
|
|
CODE_SERVER_PORT=8888
|
|
LISTMONK_PORT=9000
|
|
MKDOCS_PORT=4000
|
|
MKDOCS_SITE_SERVER_PORT=4001
|
|
N8N_PORT=5678
|
|
NOCODB_PORT=8090
|
|
GITEA_WEB_PORT=3030
|
|
GITEA_SSH_PORT=2222
|
|
MAP_PORT=3000
|
|
MINI_QR_PORT=8089
|
|
|
|
# Cloudflare (for production)
|
|
CF_API_TOKEN=your_token
|
|
CF_ZONE_ID=your_zone_id
|
|
CF_ACCOUNT_ID=your_account_id
|
|
```
|
|
|
|
### Reconfigure Services
|
|
|
|
To update configuration:
|
|
|
|
```bash
|
|
# Re-run configuration wizard
|
|
./config.sh
|
|
|
|
# Restart services
|
|
docker compose down && docker compose up -d
|
|
```
|
|
|
|
## Common Tasks
|
|
|
|
### Service Management
|
|
|
|
```bash
|
|
# View all services
|
|
docker compose ps
|
|
|
|
# View logs for specific service
|
|
docker compose logs -f [service-name]
|
|
|
|
# Restart a service
|
|
docker compose restart [service-name]
|
|
|
|
# Stop all services
|
|
docker compose down
|
|
|
|
# Stop and remove all data (CAUTION!)
|
|
docker compose down -v
|
|
```
|
|
|
|
### Backup Data
|
|
|
|
```bash
|
|
# Backup all volumes
|
|
docker run --rm -v changemaker_listmonk-data:/data -v $(pwd):/backup alpine tar czf /backup/listmonk-backup.tar.gz -C /data .
|
|
|
|
# Backup configuration
|
|
tar czf configs-backup.tar.gz configs/
|
|
|
|
# Backup documentation
|
|
tar czf docs-backup.tar.gz mkdocs/docs/
|
|
```
|
|
|
|
### Update Services
|
|
|
|
```bash
|
|
# Pull latest images
|
|
docker compose pull
|
|
|
|
# Recreate containers with new images
|
|
docker compose up -d
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Port Conflicts
|
|
|
|
If services fail to start due to port conflicts:
|
|
|
|
1. Check which ports are in use:
|
|
```bash
|
|
sudo ss -tulpn | grep LISTEN
|
|
```
|
|
|
|
2. Re-run configuration to get new ports:
|
|
```bash
|
|
./config.sh
|
|
```
|
|
|
|
3. Or manually edit `.env` file and change conflicting ports
|
|
|
|
### Permission Issues
|
|
|
|
Fix permission problems:
|
|
|
|
```bash
|
|
# Get your user and group IDs
|
|
id -u # User ID
|
|
id -g # Group ID
|
|
|
|
# Update .env file with correct IDs
|
|
USER_ID=1000
|
|
GROUP_ID=1000
|
|
|
|
# Restart services
|
|
docker compose down && docker compose up -d
|
|
```
|
|
|
|
### Service Won't Start
|
|
|
|
Debug service issues:
|
|
|
|
```bash
|
|
# Check detailed logs
|
|
docker compose logs [service-name] --tail 50
|
|
|
|
# Check container status
|
|
docker ps -a
|
|
|
|
# Inspect container
|
|
docker inspect [container-name]
|
|
```
|
|
|
|
### Cloudflare Tunnel Issues
|
|
|
|
```bash
|
|
# Check tunnel service status
|
|
sudo systemctl status cloudflared-changemaker
|
|
|
|
# View tunnel logs
|
|
sudo journalctl -u cloudflared-changemaker -f
|
|
|
|
# Restart tunnel
|
|
sudo systemctl restart cloudflared-changemaker
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
Now that your Changemaker Lite instance is running:
|
|
|
|
1. **Set up Listmonk** - Configure SMTP and create your first campaign
|
|
2. **Create workflows** - Build automations in n8n
|
|
3. **Import data** - Set up your NocoDB databases
|
|
4. **Configure map** - Add location data for the map viewer
|
|
5. **Write documentation** - Start creating content in MkDocs
|
|
6. **Set up Git** - Initialize repositories in Gitea
|
|
|
|
## Getting Help
|
|
|
|
- Check the [Services](services/index.md) documentation for detailed guides
|
|
- Review container logs for specific error messages
|
|
- Ensure all prerequisites are properly installed
|
|
- Verify your domain DNS settings for production deployment
|