{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to Changemaker Lite","text":"

A streamlined, self-hosted platform for documentation and development.

"},{"location":"#quick-start","title":"Quick Start","text":"

Get up and running in minutes:

# Clone the repository\ngit clone https://gitea.bnkops.com/admin/Changemaker.git\ncd changemaker.lite\n\n# Configure environment\n./config.sh\n\n# Start all services\ndocker compose up -d\n
"},{"location":"#services","title":"Services","text":"

Changemaker Lite includes these essential services:

"},{"location":"#getting-started","title":"Getting Started","text":"
  1. Documentation: Start writing in Code Server
  2. Preview: See live changes at MkDocs
  3. Production: View built site at Static Server
  4. Email: Set up campaigns with Listmonk
  5. Automation: Create workflows in n8n
"},{"location":"#project-structure","title":"Project Structure","text":"
changemaker.lite/\n\u251c\u2500\u2500 docker-compose.yml    # Service definitions\n\u251c\u2500\u2500 config.sh            # Setup script\n\u251c\u2500\u2500 mkdocs/              # Documentation source\n\u2502   \u251c\u2500\u2500 docs/            # Markdown files\n\u2502   \u2514\u2500\u2500 mkdocs.yml       # Configuration\n\u251c\u2500\u2500 configs/             # Service configurations\n\u2514\u2500\u2500 assets/              # Shared assets\n
"},{"location":"#learn-more","title":"Learn More","text":""},{"location":"getting-started/","title":"Getting Started","text":"

Welcome to Changemaker Lite! This guide will help you get up and running quickly.

"},{"location":"getting-started/#prerequisites","title":"Prerequisites","text":"

Before starting, ensure you have:

"},{"location":"getting-started/#installation","title":"Installation","text":""},{"location":"getting-started/#1-clone-repository","title":"1. Clone Repository","text":"
git clone https://gitea.bnkops.com/admin/Changemaker.git\ncd changemaker.lite\n
"},{"location":"getting-started/#2-configuration","title":"2. Configuration","text":"

Run the configuration script to set up environment variables:

./config.sh\n

This creates a .env file with default settings. You can edit this file to customize: - Service ports - Database credentials - User/group IDs - Domain settings

"},{"location":"getting-started/#3-start-services","title":"3. Start Services","text":"

Launch all services with Docker Compose:

docker compose up -d\n

Wait a few minutes for all services to start, especially on first run as Docker images need to be downloaded.

"},{"location":"getting-started/#4-verify-installation","title":"4. Verify Installation","text":"

Check that services are running:

docker compose ps\n

All services should show as \"Up\" status.

"},{"location":"getting-started/#first-steps","title":"First Steps","text":""},{"location":"getting-started/#access-the-dashboard","title":"Access the Dashboard","text":"

Start with the Homepage Dashboard: http://localhost:3010 - Central hub for all services - Live status monitoring - Quick access to all applications

"},{"location":"getting-started/#access-documentation","title":"Access Documentation","text":"
  1. Development Server: http://localhost:4000
  2. Live preview with auto-reload
  3. Used while writing documentation

  4. Production Server: http://localhost:4001

  5. Serves built static site
  6. Optimized for performance
"},{"location":"getting-started/#start-coding","title":"Start Coding","text":"
  1. Open Code Server: http://localhost:8888
  2. Navigate to /home/coder/mkdocs/ workspace
  3. Edit documentation files in docs/ directory
  4. See changes instantly in development server
"},{"location":"getting-started/#set-up-email-campaigns","title":"Set Up Email Campaigns","text":"
  1. Access Listmonk: http://localhost:9000
  2. Log in with admin credentials (set in config)
  3. Configure SMTP settings
  4. Create your first mailing list
"},{"location":"getting-started/#create-workflows","title":"Create Workflows","text":"
  1. Open n8n: http://localhost:5678
  2. Log in with admin credentials
  3. Create your first workflow
  4. Connect different services together
"},{"location":"getting-started/#manage-data-with-nocodb","title":"Manage Data with NocoDB","text":"
  1. Access NocoDB: http://localhost:8090
  2. Complete the initial setup
  3. Create your first project
  4. Import data or create new tables
"},{"location":"getting-started/#access-all-services-via-homepage","title":"Access All Services via Homepage","text":"
  1. Open Homepage: http://localhost:3010
  2. View all services in one dashboard
  3. Monitor service status
  4. Quick access to all applications
"},{"location":"getting-started/#configuration-details","title":"Configuration Details","text":""},{"location":"getting-started/#environment-variables","title":"Environment Variables","text":"

Key settings in .env file:

# Service Ports\nHOMEPAGE_PORT=3010\nCODE_SERVER_PORT=8888\nMKDOCS_PORT=4000\nMKDOCS_SITE_SERVER_PORT=4001\nLISTMONK_PORT=9000\nN8N_PORT=5678\nNOCODB_PORT=8090\n\n# Database\nPOSTGRES_USER=listmonk\nPOSTGRES_PASSWORD=your_secure_password\nPOSTGRES_DB=listmonk\n\n# User/Group IDs (match your system)\nUSER_ID=1000\nGROUP_ID=1000\n
"},{"location":"getting-started/#volume-mounts","title":"Volume Mounts","text":"

Important directories:

"},{"location":"getting-started/#common-tasks","title":"Common Tasks","text":""},{"location":"getting-started/#writing-documentation","title":"Writing Documentation","text":"
  1. Edit files in mkdocs/docs/ using Code Server
  2. Preview changes at http://localhost:4000
  3. Build static site: docker exec mkdocs-changemaker mkdocs build
  4. View built site at http://localhost:4001
"},{"location":"getting-started/#managing-services","title":"Managing Services","text":"
# View logs\ndocker compose logs [service-name]\n\n# Restart service\ndocker compose restart [service-name]\n\n# Stop all services\ndocker compose down\n\n# Update services\ndocker compose pull && docker compose up -d\n
"},{"location":"getting-started/#backup-important-data","title":"Backup Important Data","text":""},{"location":"getting-started/#troubleshooting","title":"Troubleshooting","text":""},{"location":"getting-started/#port-conflicts","title":"Port Conflicts","text":"

If ports are already in use, edit .env file:

CODE_SERVER_PORT=8889  # Change from 8888\nMKDOCS_PORT=4002       # Change from 4000\n

Then restart: docker compose down && docker compose up -d

"},{"location":"getting-started/#permission-issues","title":"Permission Issues","text":"

Ensure correct user/group IDs in .env:

# Get your user ID\nid -u\n\n# Get your group ID  \nid -g\n

Update .env with these values and restart services.

"},{"location":"getting-started/#service-wont-start","title":"Service Won't Start","text":"

Check logs for specific errors:

docker compose logs [service-name]\n

Common issues: - Port conflicts - Permission problems - Missing environment variables - Network connectivity

"},{"location":"getting-started/#next-steps","title":"Next Steps","text":""},{"location":"getting-started/#getting-help","title":"Getting Help","text":""},{"location":"services/","title":"Services","text":"

Changemaker Lite includes several powerful services that work together to provide a complete documentation and development platform. Each service is containerized and can be accessed through its dedicated port.

"},{"location":"services/#available-services","title":"Available Services","text":""},{"location":"services/#code-server","title":"Code Server","text":"

Port: 8888 | Visual Studio Code in your browser for remote development - Full IDE experience - Extensions support - Git integration - Terminal access

"},{"location":"services/#listmonk","title":"Listmonk","text":"

Port: 9000 | Self-hosted newsletter and mailing list manager - Email campaigns - Subscriber management - Analytics - Template system

"},{"location":"services/#postgresql","title":"PostgreSQL","text":"

Port: 5432 | Reliable database backend - Data persistence for Listmonk - ACID compliance - High performance - Backup and restore capabilities

"},{"location":"services/#mkdocs-material","title":"MkDocs Material","text":"

Port: 4000 | Documentation site generator with live preview - Material Design theme - Live reload - Search functionality - Markdown support

"},{"location":"services/#static-site-server","title":"Static Site Server","text":"

Port: 4001 | Nginx-powered static site hosting - High-performance serving - Built documentation hosting - Caching and compression - Security headers

"},{"location":"services/#n8n","title":"n8n","text":"

Port: 5678 | Workflow automation tool - Visual workflow editor - 400+ integrations - Custom code execution - Webhook support

"},{"location":"services/#nocodb","title":"NocoDB","text":"

Port: 8090 | No-code database platform - Smart spreadsheet interface - Form builder and API generation - Real-time collaboration - Multi-database support

"},{"location":"services/#homepage","title":"Homepage","text":"

Port: 3010 | Modern dashboard for all services - Service dashboard and monitoring - Docker integration - Customizable layout - Quick search and bookmarks

"},{"location":"services/#service-architecture","title":"Service Architecture","text":"
\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   Homepage      \u2502    \u2502   Code Server   \u2502    \u2502     MkDocs      \u2502\n\u2502     :3010       \u2502    \u2502     :8888       \u2502    \u2502     :4000       \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Static Server   \u2502    \u2502    Listmonk     \u2502    \u2502      n8n        \u2502\n\u2502     :4001       \u2502    \u2502     :9000       \u2502    \u2502     :5678       \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502     NocoDB      \u2502    \u2502 PostgreSQL      \u2502    \u2502 PostgreSQL      \u2502\n\u2502     :8090       \u2502    \u2502 (listmonk-db)   \u2502    \u2502 (root_db)       \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2502     :5432       \u2502    \u2502     :5432       \u2502\n         \u2502              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n
"},{"location":"services/#getting-started","title":"Getting Started","text":"
  1. Start all services: docker compose up -d
  2. Check service status: docker compose ps
  3. View logs: docker compose logs [service-name]
  4. Stop services: docker compose down
"},{"location":"services/#service-dependencies","title":"Service Dependencies","text":""},{"location":"services/#environment-configuration","title":"Environment Configuration","text":"

Services are configured through environment variables in your .env file:

# Port configurations\nCODE_SERVER_PORT=8888\nLISTMONK_PORT=9000\nLISTMONK_DB_PORT=5432\nMKDOCS_PORT=4000\nMKDOCS_SITE_SERVER_PORT=4001\nN8N_PORT=5678\n\n# User and group IDs\nUSER_ID=1000\nGROUP_ID=1000\n\n# Database configuration\nPOSTGRES_USER=listmonk\nPOSTGRES_PASSWORD=your_password\nPOSTGRES_DB=listmonk\n\n# n8n configuration\nN8N_ENCRYPTION_KEY=your_encryption_key\nN8N_USER_EMAIL=admin@example.com\nN8N_USER_PASSWORD=your_password\n
"},{"location":"services/#monitoring-and-maintenance","title":"Monitoring and Maintenance","text":""},{"location":"services/#health-checks","title":"Health Checks","text":"
# Check all services\ndocker compose ps\n\n# Check specific service logs\ndocker compose logs listmonk-app\ndocker compose logs code-server\n
"},{"location":"services/#updates","title":"Updates","text":"
# Pull latest images\ndocker compose pull\n\n# Restart with new images\ndocker compose down && docker compose up -d\n
"},{"location":"services/#backups","title":"Backups","text":""},{"location":"services/#troubleshooting","title":"Troubleshooting","text":""},{"location":"services/#common-issues","title":"Common Issues","text":"
  1. Port Conflicts: Ensure ports are not used by other applications
  2. Permission Issues: Check USER_ID and GROUP_ID settings
  3. Network Issues: Verify services can communicate through the changemaker network
  4. Data Persistence: Ensure volumes are properly mounted
"},{"location":"services/#getting-help","title":"Getting Help","text":""},{"location":"services/code-server/","title":"Code Server","text":"

Visual Studio Code in your browser for remote development.

"},{"location":"services/code-server/#overview","title":"Overview","text":"

Code Server provides a full Visual Studio Code experience in your web browser, allowing you to develop from any device. It runs on your server and provides access to your development environment through a web interface.

"},{"location":"services/code-server/#features","title":"Features","text":""},{"location":"services/code-server/#access","title":"Access","text":""},{"location":"services/code-server/#configuration","title":"Configuration","text":""},{"location":"services/code-server/#environment-variables","title":"Environment Variables","text":""},{"location":"services/code-server/#volumes","title":"Volumes","text":""},{"location":"services/code-server/#usage","title":"Usage","text":"
  1. Access Code Server at http://localhost:8888
  2. Open the /home/coder/mkdocs/ workspace
  3. Start editing your documentation files
  4. Install extensions as needed
  5. Use the integrated terminal for commands
"},{"location":"services/code-server/#useful-extensions","title":"Useful Extensions","text":"

Consider installing these extensions for better documentation work:

"},{"location":"services/code-server/#official-documentation","title":"Official Documentation","text":"

For more detailed information, visit the official Code Server documentation.

"},{"location":"services/homepage/","title":"Homepage","text":"

Modern dashboard for accessing all your self-hosted services.

"},{"location":"services/homepage/#overview","title":"Overview","text":"

Homepage is a modern, fully static, fast, secure fully configurable application dashboard with integrations for over 100 services. It provides a beautiful and customizable interface to access all your Changemaker Lite services from a single location.

"},{"location":"services/homepage/#features","title":"Features","text":""},{"location":"services/homepage/#access","title":"Access","text":""},{"location":"services/homepage/#configuration","title":"Configuration","text":""},{"location":"services/homepage/#environment-variables","title":"Environment Variables","text":""},{"location":"services/homepage/#configuration-files","title":"Configuration Files","text":"

Homepage uses YAML configuration files located in ./configs/homepage/:

"},{"location":"services/homepage/#volumes","title":"Volumes","text":""},{"location":"services/homepage/#changemaker-lite-services","title":"Changemaker Lite Services","text":"

Homepage is pre-configured with all Changemaker Lite services:

"},{"location":"services/homepage/#essential-tools","title":"Essential Tools","text":""},{"location":"services/homepage/#content-documentation","title":"Content & Documentation","text":""},{"location":"services/homepage/#automation-data","title":"Automation & Data","text":""},{"location":"services/homepage/#customization","title":"Customization","text":""},{"location":"services/homepage/#adding-custom-services","title":"Adding Custom Services","text":"

Edit configs/homepage/services.yaml to add new services:

- Custom Category:\n    - My Service:\n        href: http://localhost:8080\n        description: Custom service description\n        icon: mdi-application\n        widget:\n          type: ping\n          url: http://localhost:8080\n
"},{"location":"services/homepage/#custom-icons","title":"Custom Icons","text":"

Add custom icons to ./assets/icons/ directory and reference them in services.yaml:

icon: /icons/my-custom-icon.png\n
"},{"location":"services/homepage/#themes-and-styling","title":"Themes and Styling","text":"

Modify configs/homepage/settings.yaml to customize appearance:

theme: dark  # or light\ncolor: purple  # slate, gray, zinc, neutral, stone, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose\n
"},{"location":"services/homepage/#widgets","title":"Widgets","text":"

Enable live monitoring widgets in configs/homepage/services.yaml:

- Service Name:\n    widget:\n      type: docker\n      container: container-name\n      server: my-docker\n
"},{"location":"services/homepage/#service-monitoring","title":"Service Monitoring","text":"

Homepage can display real-time status information for your services:

"},{"location":"services/homepage/#docker-integration","title":"Docker Integration","text":"

Homepage monitors Docker containers automatically when configured:

  1. Ensure Docker socket is mounted (/var/run/docker.sock)
  2. Configure container mappings in docker.yaml
  3. Add widget configurations to services.yaml
"},{"location":"services/homepage/#security-considerations","title":"Security Considerations","text":""},{"location":"services/homepage/#troubleshooting","title":"Troubleshooting","text":""},{"location":"services/homepage/#common-issues","title":"Common Issues","text":"

Configuration not loading: Check YAML syntax in configuration files

docker logs homepage-changemaker\n

Icons not displaying: Verify icon paths and file permissions

ls -la ./assets/icons/\n

Services not reachable: Verify network connectivity between containers

docker exec homepage-changemaker ping service-name\n

Widget data not updating: Check Docker socket permissions and container access

docker exec homepage-changemaker ls -la /var/run/docker.sock\n

"},{"location":"services/homepage/#configuration-examples","title":"Configuration Examples","text":""},{"location":"services/homepage/#basic-service-widget","title":"Basic Service Widget","text":"
- Code Server:\n    href: http://localhost:8888\n    description: VS Code in the browser\n    icon: code-server\n    widget:\n      type: docker\n      container: code-server-changemaker\n
"},{"location":"services/homepage/#custom-dashboard-layout","title":"Custom Dashboard Layout","text":"
# settings.yaml\nlayout:\n  style: columns\n  columns: 3\n\n# Responsive breakpoints\nresponsive:\n  mobile: 1\n  tablet: 2\n  desktop: 3\n
"},{"location":"services/homepage/#official-documentation","title":"Official Documentation","text":"

For comprehensive configuration guides and advanced features: - Homepage Documentation - GitHub Repository - Configuration Examples - Widget Integrations

"},{"location":"services/listmonk/","title":"Listmonk","text":"

Self-hosted newsletter and mailing list manager.

"},{"location":"services/listmonk/#overview","title":"Overview","text":"

Listmonk is a modern, feature-rich newsletter and mailing list manager designed for high performance and easy management. It provides a complete solution for email campaigns, subscriber management, and analytics.

"},{"location":"services/listmonk/#features","title":"Features","text":""},{"location":"services/listmonk/#access","title":"Access","text":""},{"location":"services/listmonk/#configuration","title":"Configuration","text":""},{"location":"services/listmonk/#environment-variables","title":"Environment Variables","text":""},{"location":"services/listmonk/#database","title":"Database","text":"

Listmonk uses PostgreSQL as its backend database. The database is automatically configured through the docker-compose setup.

"},{"location":"services/listmonk/#uploads","title":"Uploads","text":""},{"location":"services/listmonk/#getting-started","title":"Getting Started","text":"
  1. Access Listmonk at http://localhost:9000
  2. Log in with your admin credentials
  3. Set up your first mailing list
  4. Configure SMTP settings for sending emails
  5. Import subscribers or create subscription forms
  6. Create your first campaign
"},{"location":"services/listmonk/#important-notes","title":"Important Notes","text":""},{"location":"services/listmonk/#official-documentation","title":"Official Documentation","text":"

For comprehensive guides and API documentation, visit: - Listmonk Documentation - GitHub Repository

"},{"location":"services/mkdocs/","title":"MkDocs Material","text":"

Modern documentation site generator with live preview.

"},{"location":"services/mkdocs/#overview","title":"Overview","text":"

MkDocs Material is a powerful documentation framework built on top of MkDocs, providing a beautiful Material Design theme and advanced features for creating professional documentation sites.

"},{"location":"services/mkdocs/#features","title":"Features","text":""},{"location":"services/mkdocs/#access","title":"Access","text":""},{"location":"services/mkdocs/#configuration","title":"Configuration","text":""},{"location":"services/mkdocs/#main-configuration","title":"Main Configuration","text":"

Configuration is managed through mkdocs.yml in the project root.

"},{"location":"services/mkdocs/#volumes","title":"Volumes","text":""},{"location":"services/mkdocs/#environment-variables","title":"Environment Variables","text":""},{"location":"services/mkdocs/#directory-structure","title":"Directory Structure","text":"
mkdocs/\n\u251c\u2500\u2500 mkdocs.yml          # Configuration file\n\u251c\u2500\u2500 docs/               # Documentation source\n\u2502   \u251c\u2500\u2500 index.md       # Homepage\n\u2502   \u251c\u2500\u2500 services/      # Service documentation\n\u2502   \u251c\u2500\u2500 blog/          # Blog posts\n\u2502   \u2514\u2500\u2500 overrides/     # Template overrides\n\u2514\u2500\u2500 site/              # Built static site\n
"},{"location":"services/mkdocs/#writing-documentation","title":"Writing Documentation","text":""},{"location":"services/mkdocs/#markdown-basics","title":"Markdown Basics","text":""},{"location":"services/mkdocs/#example-page","title":"Example Page","text":"
# Page Title\n\nThis is a sample documentation page.\n\n## Section\n\nContent goes here with **bold** and *italic* text.\n\n### Code Example\n\n```python\ndef hello_world():\n    print(\"Hello, World!\")\n

Note

This is an informational note.

## Building and Deployment\n\n### Development\n\nThe development server runs automatically with live reload.\n\n### Building Static Site\n\n```bash\ndocker exec mkdocs-changemaker mkdocs build\n

The built site will be available in the mkdocs/site/ directory.

"},{"location":"services/mkdocs/#customization","title":"Customization","text":""},{"location":"services/mkdocs/#themes-and-colors","title":"Themes and Colors","text":"

Customize appearance in mkdocs.yml:

theme:\n  name: material\n  palette:\n    primary: blue\n    accent: indigo\n
"},{"location":"services/mkdocs/#custom-css","title":"Custom CSS","text":"

Add custom styles in docs/stylesheets/extra.css.

"},{"location":"services/mkdocs/#official-documentation","title":"Official Documentation","text":"

For comprehensive MkDocs Material documentation: - MkDocs Material - MkDocs Documentation - Markdown Guide

"},{"location":"services/n8n/","title":"n8n","text":"

Workflow automation tool for connecting services and automating tasks.

"},{"location":"services/n8n/#overview","title":"Overview","text":"

n8n is a powerful workflow automation tool that allows you to connect various apps and services together. It provides a visual interface for creating automated workflows, making it easy to integrate different systems and automate repetitive tasks.

"},{"location":"services/n8n/#features","title":"Features","text":""},{"location":"services/n8n/#access","title":"Access","text":""},{"location":"services/n8n/#configuration","title":"Configuration","text":""},{"location":"services/n8n/#environment-variables","title":"Environment Variables","text":""},{"location":"services/n8n/#volumes","title":"Volumes","text":""},{"location":"services/n8n/#getting-started","title":"Getting Started","text":"
  1. Access n8n at http://localhost:5678
  2. Log in with your admin credentials
  3. Create your first workflow
  4. Add nodes for different services
  5. Configure connections between nodes
  6. Test and activate your workflow
"},{"location":"services/n8n/#common-use-cases","title":"Common Use Cases","text":""},{"location":"services/n8n/#documentation-automation","title":"Documentation Automation","text":""},{"location":"services/n8n/#email-campaign-integration","title":"Email Campaign Integration","text":""},{"location":"services/n8n/#database-management-with-nocodb","title":"Database Management with NocoDB","text":""},{"location":"services/n8n/#development-workflows","title":"Development Workflows","text":""},{"location":"services/n8n/#data-processing","title":"Data Processing","text":""},{"location":"services/n8n/#example-workflows","title":"Example Workflows","text":""},{"location":"services/n8n/#simple-webhook-to-email","title":"Simple Webhook to Email","text":"
Webhook \u2192 Email\n
"},{"location":"services/n8n/#scheduled-documentation-backup","title":"Scheduled Documentation Backup","text":"
Schedule \u2192 Read Files \u2192 Compress \u2192 Upload to Storage\n
"},{"location":"services/n8n/#git-integration","title":"Git Integration","text":"
Git Webhook \u2192 Process Changes \u2192 Update Documentation \u2192 Notify Team\n
"},{"location":"services/n8n/#security-considerations","title":"Security Considerations","text":""},{"location":"services/n8n/#integration-with-other-services","title":"Integration with Other Services","text":"

n8n can integrate with all services in your Changemaker Lite setup: - Listmonk: Manage subscribers and campaigns - PostgreSQL: Read/write database operations - Code Server: File operations and git integration - MkDocs: Documentation generation and updates

"},{"location":"services/n8n/#troubleshooting","title":"Troubleshooting","text":""},{"location":"services/n8n/#common-issues","title":"Common Issues","text":""},{"location":"services/n8n/#debugging","title":"Debugging","text":"
# Check container logs\ndocker logs n8n-changemaker\n\n# Access container shell\ndocker exec -it n8n-changemaker sh\n\n# Check workflow executions in the UI\n# Visit http://localhost:5678 \u2192 Executions\n
"},{"location":"services/n8n/#official-documentation","title":"Official Documentation","text":"

For comprehensive n8n documentation: - n8n Documentation - Community Workflows - Node Reference - GitHub Repository

"},{"location":"services/nocodb/","title":"NocoDB","text":"

No-code database platform that turns any database into a smart spreadsheet.

"},{"location":"services/nocodb/#overview","title":"Overview","text":"

NocoDB is an open-source no-code platform that transforms any database into a smart spreadsheet interface. It provides a user-friendly way to manage data, create forms, build APIs, and collaborate on database operations without requiring extensive technical knowledge.

"},{"location":"services/nocodb/#features","title":"Features","text":""},{"location":"services/nocodb/#access","title":"Access","text":""},{"location":"services/nocodb/#configuration","title":"Configuration","text":""},{"location":"services/nocodb/#environment-variables","title":"Environment Variables","text":""},{"location":"services/nocodb/#database-backend","title":"Database Backend","text":"

NocoDB uses a dedicated PostgreSQL instance (root_db) with the following configuration: - Database Name: root_db - Username: postgres - Password: password - Host: root_db (internal container name)

"},{"location":"services/nocodb/#volumes","title":"Volumes","text":""},{"location":"services/nocodb/#getting-started","title":"Getting Started","text":"
  1. Access NocoDB: Navigate to http://localhost:8090
  2. Initial Setup: Complete the onboarding process
  3. Create Project: Start with a new project or connect existing databases
  4. Add Tables: Import data or create new tables
  5. Configure Views: Set up different views (Grid, Form, Gallery, etc.)
  6. Set Permissions: Configure user access and sharing settings
"},{"location":"services/nocodb/#common-use-cases","title":"Common Use Cases","text":""},{"location":"services/nocodb/#content-management","title":"Content Management","text":""},{"location":"services/nocodb/#project-management","title":"Project Management","text":""},{"location":"services/nocodb/#data-collection","title":"Data Collection","text":""},{"location":"services/nocodb/#integration-with-other-services","title":"Integration with Other Services","text":"

NocoDB can integrate well with other Changemaker Lite services:

"},{"location":"services/nocodb/#api-usage","title":"API Usage","text":"

NocoDB automatically generates REST APIs for all your tables:

# Get all records from a table\nGET http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}\n\n# Create a new record\nPOST http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}\n\n# Update a record\nPATCH http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}/{id}\n
"},{"location":"services/nocodb/#backup-and-data-management","title":"Backup and Data Management","text":""},{"location":"services/nocodb/#database-backup","title":"Database Backup","text":"

Since NocoDB uses PostgreSQL, you can backup the database:

# Backup NocoDB database\ndocker exec root_db pg_dump -U postgres root_db > nocodb_backup.sql\n\n# Restore from backup\ndocker exec -i root_db psql -U postgres root_db < nocodb_backup.sql\n
"},{"location":"services/nocodb/#application-data","title":"Application Data","text":"

Application settings and metadata are stored in the nc_data volume.

"},{"location":"services/nocodb/#security-considerations","title":"Security Considerations","text":""},{"location":"services/nocodb/#performance-tips","title":"Performance Tips","text":""},{"location":"services/nocodb/#troubleshooting","title":"Troubleshooting","text":""},{"location":"services/nocodb/#common-issues","title":"Common Issues","text":"

Service won't start: Check if the PostgreSQL database is healthy

docker logs root_db\n

Database connection errors: Verify database credentials and network connectivity

docker exec nocodb nc_data nc\n

Performance issues: Monitor resource usage and optimize queries

docker stats nocodb root_db\n

"},{"location":"services/nocodb/#official-documentation","title":"Official Documentation","text":"

For comprehensive guides and advanced features: - NocoDB Documentation - GitHub Repository - Community Forum

"},{"location":"services/postgresql/","title":"PostgreSQL Database","text":"

Reliable database backend for applications.

"},{"location":"services/postgresql/#overview","title":"Overview","text":"

PostgreSQL is a powerful, open-source relational database system. In Changemaker Lite, it serves as the backend database for Listmonk and can be used by other applications requiring persistent data storage.

"},{"location":"services/postgresql/#features","title":"Features","text":""},{"location":"services/postgresql/#access","title":"Access","text":""},{"location":"services/postgresql/#configuration","title":"Configuration","text":""},{"location":"services/postgresql/#environment-variables","title":"Environment Variables","text":""},{"location":"services/postgresql/#health-checks","title":"Health Checks","text":"

The PostgreSQL container includes health checks to ensure the database is ready before dependent services start.

"},{"location":"services/postgresql/#data-persistence","title":"Data Persistence","text":"

Database data is stored in a Docker volume (listmonk-data) to ensure persistence across container restarts.

"},{"location":"services/postgresql/#connecting-to-the-database","title":"Connecting to the Database","text":""},{"location":"services/postgresql/#from-host-machine","title":"From Host Machine","text":"

You can connect to PostgreSQL from your host machine using:

psql -h localhost -p 5432 -U [username] -d [database]\n
"},{"location":"services/postgresql/#from-other-containers","title":"From Other Containers","text":"

Other containers can connect using the internal hostname listmonk-db on port 5432.

"},{"location":"services/postgresql/#backup-and-restore","title":"Backup and Restore","text":""},{"location":"services/postgresql/#backup","title":"Backup","text":"
docker exec listmonk-db pg_dump -U [username] [database] > backup.sql\n
"},{"location":"services/postgresql/#restore","title":"Restore","text":"
docker exec -i listmonk-db psql -U [username] [database] < backup.sql\n
"},{"location":"services/postgresql/#monitoring","title":"Monitoring","text":"

Monitor database health and performance through: - Container logs: docker logs listmonk-db - Database metrics and queries - Connection monitoring

"},{"location":"services/postgresql/#security-considerations","title":"Security Considerations","text":""},{"location":"services/postgresql/#official-documentation","title":"Official Documentation","text":"

For comprehensive PostgreSQL documentation: - PostgreSQL Documentation - Docker PostgreSQL Image

"},{"location":"services/static-server/","title":"Static Site Server","text":"

Nginx-powered static site server for hosting built documentation and websites.

"},{"location":"services/static-server/#overview","title":"Overview","text":"

The Static Site Server uses Nginx to serve your built documentation and static websites. It's configured to serve the built MkDocs site and other static content with high performance and reliability.

"},{"location":"services/static-server/#features","title":"Features","text":""},{"location":"services/static-server/#access","title":"Access","text":""},{"location":"services/static-server/#configuration","title":"Configuration","text":""},{"location":"services/static-server/#environment-variables","title":"Environment Variables","text":""},{"location":"services/static-server/#volumes","title":"Volumes","text":""},{"location":"services/static-server/#usage","title":"Usage","text":"
  1. Build your MkDocs site: docker exec mkdocs-changemaker mkdocs build
  2. The built site is automatically available at http://localhost:4001
  3. Any files in ./mkdocs/site/ will be served statically
"},{"location":"services/static-server/#file-structure","title":"File Structure","text":"
mkdocs/site/           # Served at /\n\u251c\u2500\u2500 index.html         # Homepage\n\u251c\u2500\u2500 assets/           # CSS, JS, images\n\u251c\u2500\u2500 services/         # Service documentation\n\u2514\u2500\u2500 search/           # Search functionality\n
"},{"location":"services/static-server/#performance-features","title":"Performance Features","text":""},{"location":"services/static-server/#custom-configuration","title":"Custom Configuration","text":"

For advanced Nginx configuration, you can: 1. Create custom Nginx config files 2. Mount them as volumes 3. Restart the container

"},{"location":"services/static-server/#monitoring","title":"Monitoring","text":"

Monitor the static site server through: - Container logs: docker logs mkdocs-site-server-changemaker - Access logs for traffic analysis - Performance metrics

"},{"location":"services/static-server/#troubleshooting","title":"Troubleshooting","text":""},{"location":"services/static-server/#common-issues","title":"Common Issues","text":""},{"location":"services/static-server/#debugging","title":"Debugging","text":"
# Check container logs\ndocker logs mkdocs-site-server-changemaker\n\n# Verify files are present\ndocker exec mkdocs-site-server-changemaker ls -la /config/www\n\n# Test file serving\ncurl -I http://localhost:4001\n
"},{"location":"services/static-server/#official-documentation","title":"Official Documentation","text":"

For more information about the underlying Nginx server: - LinuxServer.io Nginx - Nginx Documentation

"}]}