initial commit
BIN
mkdocs/.cache/plugin/social/0ee943db87dfa39f1d8b8882384425da.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
mkdocs/.cache/plugin/social/13b7450908684a452205d94a249e3e4d.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
mkdocs/.cache/plugin/social/1ba54b15aedf0426dba781e37512dce1.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
mkdocs/.cache/plugin/social/3a2fd3f826d2a906ed92c3970b25cb7d.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mkdocs/.cache/plugin/social/431ab4f4662987971222ad7fc4583df8.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
mkdocs/.cache/plugin/social/668c246629c618cf956e7cea78d4037d.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
mkdocs/.cache/plugin/social/721bd151e1ec0d1e48006634b8ff2e38.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
mkdocs/.cache/plugin/social/740e1015f23d88c791e7cd6c726e1081.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
mkdocs/.cache/plugin/social/83db91be2c8770ec6e0cad47805127ef.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
mkdocs/.cache/plugin/social/96a422da08dcb28205d2e584a7c620ca.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
mkdocs/.cache/plugin/social/9fdd03d6602a201cef87a201f27fc715.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
mkdocs/.cache/plugin/social/a5775bbacaf158405defcb68416ea8bd.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
mkdocs/.cache/plugin/social/aa0707be07fb7b02ab3372711d954d83.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
mkdocs/.cache/plugin/social/af754735b566f6d264e3f21b80a2d139.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
mkdocs/.cache/plugin/social/ca7a35746e5b24c6195659a5ce3f5a0d.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
mkdocs/.cache/plugin/social/d988b15f28c148e32971e4f12f707389.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
mkdocs/.cache/plugin/social/fb97f0bfe74bea4659ea90c0a851c2ec.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Black Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Black.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Bold Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Bold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Black.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Bold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed ExtraBold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Light.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Medium.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Regular.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed SemiBold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Condensed Thin.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/ExtraBold Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/ExtraBold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/ExtraLight Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/ExtraLight.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Light Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Light.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Medium Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Medium.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Regular.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiBold Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiBold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiCondensed Black.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiCondensed Bold.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiCondensed Light.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/SemiCondensed Thin.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Thin Italic.ttf
Normal file
BIN
mkdocs/.cache/plugin/social/fonts/Roboto/Thin.ttf
Normal file
0
mkdocs/docs/blog/index.md
Normal file
231
mkdocs/docs/getting-started.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# Getting Started
|
||||
|
||||
Welcome to Changemaker Lite! This guide will help you get up and running quickly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before starting, ensure you have:
|
||||
|
||||
- [Docker](https://docs.docker.com/get-docker/) installed
|
||||
- [Docker Compose](https://docs.docker.com/compose/install/) installed
|
||||
- Git for cloning the repository
|
||||
- Basic familiarity with terminal/command line
|
||||
|
||||
## Installation
|
||||
|
||||
### 1. Clone Repository
|
||||
|
||||
```bash
|
||||
git clone https://gitea.bnkops.com/admin/Changemaker.git
|
||||
cd changemaker.lite
|
||||
```
|
||||
|
||||
### 2. Configuration
|
||||
|
||||
Run the configuration script to set up environment variables:
|
||||
|
||||
```bash
|
||||
./config.sh
|
||||
```
|
||||
|
||||
This creates a `.env` file with default settings. You can edit this file to customize:
|
||||
- Service ports
|
||||
- Database credentials
|
||||
- User/group IDs
|
||||
- Domain settings
|
||||
|
||||
### 3. Start Services
|
||||
|
||||
Launch all services with Docker Compose:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Wait a few minutes for all services to start, especially on first run as Docker images need to be downloaded.
|
||||
|
||||
### 4. Verify Installation
|
||||
|
||||
Check that services are running:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
All services should show as "Up" status.
|
||||
|
||||
## First Steps
|
||||
|
||||
### Access the Dashboard
|
||||
|
||||
Start with the **Homepage Dashboard**: http://localhost:3010
|
||||
- Central hub for all services
|
||||
- Live status monitoring
|
||||
- Quick access to all applications
|
||||
|
||||
### Access Documentation
|
||||
|
||||
1. **Development Server**: http://localhost:4000
|
||||
- Live preview with auto-reload
|
||||
- Used while writing documentation
|
||||
|
||||
2. **Production Server**: http://localhost:4001
|
||||
- Serves built static site
|
||||
- Optimized for performance
|
||||
|
||||
### Start Coding
|
||||
|
||||
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
|
||||
|
||||
### Set Up Email Campaigns
|
||||
|
||||
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
|
||||
|
||||
### Create Workflows
|
||||
|
||||
1. Open **n8n**: http://localhost:5678
|
||||
2. Log in with admin credentials
|
||||
3. Create your first workflow
|
||||
4. Connect different services together
|
||||
|
||||
### Manage Data with NocoDB
|
||||
|
||||
1. Access **NocoDB**: http://localhost:8090
|
||||
2. Complete the initial setup
|
||||
3. Create your first project
|
||||
4. Import data or create new tables
|
||||
|
||||
### Access All Services via Homepage
|
||||
|
||||
1. Open **Homepage**: http://localhost:3010
|
||||
2. View all services in one dashboard
|
||||
3. Monitor service status
|
||||
4. Quick access to all applications
|
||||
|
||||
## Configuration Details
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Key settings in `.env` file:
|
||||
|
||||
```env
|
||||
# Service Ports
|
||||
HOMEPAGE_PORT=3010
|
||||
CODE_SERVER_PORT=8888
|
||||
MKDOCS_PORT=4000
|
||||
MKDOCS_SITE_SERVER_PORT=4001
|
||||
LISTMONK_PORT=9000
|
||||
N8N_PORT=5678
|
||||
NOCODB_PORT=8090
|
||||
|
||||
# Database
|
||||
POSTGRES_USER=listmonk
|
||||
POSTGRES_PASSWORD=your_secure_password
|
||||
POSTGRES_DB=listmonk
|
||||
|
||||
# User/Group IDs (match your system)
|
||||
USER_ID=1000
|
||||
GROUP_ID=1000
|
||||
```
|
||||
|
||||
### Volume Mounts
|
||||
|
||||
Important directories:
|
||||
|
||||
- `./mkdocs/`: Documentation source files
|
||||
- `./configs/`: Service configurations
|
||||
- `./assets/`: Shared assets and uploads
|
||||
- Docker volumes for persistent data
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Writing Documentation
|
||||
|
||||
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
|
||||
|
||||
### Managing Services
|
||||
|
||||
```bash
|
||||
# View logs
|
||||
docker compose logs [service-name]
|
||||
|
||||
# Restart service
|
||||
docker compose restart [service-name]
|
||||
|
||||
# Stop all services
|
||||
docker compose down
|
||||
|
||||
# Update services
|
||||
docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
### Backup Important Data
|
||||
|
||||
- Export n8n workflows
|
||||
- Backup PostgreSQL database
|
||||
- Version control your documentation files
|
||||
- Save service configurations
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Port Conflicts
|
||||
|
||||
If ports are already in use, edit `.env` file:
|
||||
|
||||
```env
|
||||
CODE_SERVER_PORT=8889 # Change from 8888
|
||||
MKDOCS_PORT=4002 # Change from 4000
|
||||
```
|
||||
|
||||
Then restart: `docker compose down && docker compose up -d`
|
||||
|
||||
### Permission Issues
|
||||
|
||||
Ensure correct user/group IDs in `.env`:
|
||||
|
||||
```bash
|
||||
# Get your user ID
|
||||
id -u
|
||||
|
||||
# Get your group ID
|
||||
id -g
|
||||
```
|
||||
|
||||
Update `.env` with these values and restart services.
|
||||
|
||||
### Service Won't Start
|
||||
|
||||
Check logs for specific errors:
|
||||
|
||||
```bash
|
||||
docker compose logs [service-name]
|
||||
```
|
||||
|
||||
Common issues:
|
||||
- Port conflicts
|
||||
- Permission problems
|
||||
- Missing environment variables
|
||||
- Network connectivity
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Explore the [Services](services/index.md) documentation
|
||||
- Set up your first [n8n workflow](services/n8n.md)
|
||||
- Configure [Listmonk](services/listmonk.md) for email campaigns
|
||||
- Customize your [MkDocs](services/mkdocs.md) theme and content
|
||||
|
||||
## Getting Help
|
||||
|
||||
- Check service-specific documentation
|
||||
- Review Docker container logs
|
||||
- Verify environment configuration
|
||||
- Test network connectivity between services
|
||||
60
mkdocs/docs/index.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Welcome to Changemaker Lite
|
||||
|
||||
A streamlined, self-hosted platform for documentation and development.
|
||||
|
||||
## Quick Start
|
||||
|
||||
Get up and running in minutes:
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://gitea.bnkops.com/admin/Changemaker.git
|
||||
cd changemaker.lite
|
||||
|
||||
# Configure environment
|
||||
./config.sh
|
||||
|
||||
# Start all services
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Services
|
||||
|
||||
Changemaker Lite includes these essential services:
|
||||
|
||||
- **[Homepage](services/homepage.md)** (Port 3010) - Service dashboard and monitoring
|
||||
- **[Code Server](services/code-server.md)** (Port 8888) - VS Code in your browser
|
||||
- **[MkDocs](services/mkdocs.md)** (Port 4000) - Documentation with live preview
|
||||
- **[Static Server](services/static-server.md)** (Port 4001) - Built site hosting
|
||||
- **[Waypoint Editor](services/waypoint-editor.md)** (Port 3020) - Visual page editor
|
||||
- **[Listmonk](services/listmonk.md)** (Port 9000) - Newsletter management
|
||||
- **[PostgreSQL](services/postgresql.md)** (Port 5432) - Database backend
|
||||
- **[n8n](services/n8n.md)** (Port 5678) - Workflow automation
|
||||
- **[NocoDB](services/nocodb.md)** (Port 8090) - No-code database platform
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. **Documentation**: Start writing in [Code Server](http://localhost:8888)
|
||||
2. **Preview**: See live changes at [MkDocs](http://localhost:4000)
|
||||
3. **Production**: View built site at [Static Server](http://localhost:4001)
|
||||
4. **Email**: Set up campaigns with [Listmonk](http://localhost:9000)
|
||||
5. **Automation**: Create workflows in [n8n](http://localhost:5678)
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
changemaker.lite/
|
||||
├── docker-compose.yml # Service definitions
|
||||
├── config.sh # Setup script
|
||||
├── mkdocs/ # Documentation source
|
||||
│ ├── docs/ # Markdown files
|
||||
│ └── mkdocs.yml # Configuration
|
||||
├── configs/ # Service configurations
|
||||
└── assets/ # Shared assets
|
||||
```
|
||||
|
||||
## Learn More
|
||||
|
||||
- [Services Overview](services/index.md) - Detailed service documentation
|
||||
- [Blog](blog/index.md) - Updates and tutorials
|
||||
- [GitHub Repository](https://gitea.bnkops.com/admin/Changemaker) - Source code and issues
|
||||
0
mkdocs/docs/overrides/home.html
Normal file
9
mkdocs/docs/overrides/main.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block extrahead %}
|
||||
{% endblock %}
|
||||
|
||||
{% block announce %}
|
||||
<a href="https://homepage.test.com" class="login-button">Login</a>
|
||||
Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
|
||||
{% endblock %}
|
||||
59
mkdocs/docs/services/code-server.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Code Server
|
||||
|
||||
Visual Studio Code in your browser for remote development.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- Full VS Code experience in the browser
|
||||
- Extensions support
|
||||
- Terminal access
|
||||
- Git integration
|
||||
- File editing and management
|
||||
- Multi-language support
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 8888
|
||||
- **URL**: `http://localhost:8888`
|
||||
- **Default Workspace**: `/home/coder/mkdocs/`
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `DOCKER_USER`: The user to run code-server as (default: `coder`)
|
||||
- `DEFAULT_WORKSPACE`: Default workspace directory
|
||||
- `USER_ID`: User ID for file permissions
|
||||
- `GROUP_ID`: Group ID for file permissions
|
||||
|
||||
### Volumes
|
||||
|
||||
- `./configs/code-server/.config`: VS Code configuration
|
||||
- `./configs/code-server/.local`: Local data
|
||||
- `./mkdocs`: Main workspace directory
|
||||
|
||||
## Usage
|
||||
|
||||
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
|
||||
|
||||
## Useful Extensions
|
||||
|
||||
Consider installing these extensions for better documentation work:
|
||||
|
||||
- Markdown All in One
|
||||
- Material Design Icons
|
||||
- GitLens
|
||||
- Docker
|
||||
- YAML
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For more detailed information, visit the [official Code Server documentation](https://coder.com/docs/code-server).
|
||||
199
mkdocs/docs/services/homepage.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# Homepage
|
||||
|
||||
Modern dashboard for accessing all your self-hosted services.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- **Service Dashboard**: Central hub for all your applications
|
||||
- **Docker Integration**: Automatic service discovery and monitoring
|
||||
- **Customizable Layout**: Flexible grid-based layout system
|
||||
- **Service Widgets**: Live status and metrics for services
|
||||
- **Quick Search**: Fast navigation with built-in search
|
||||
- **Bookmarks**: Organize frequently used links
|
||||
- **Dark/Light Themes**: Multiple color schemes available
|
||||
- **Responsive Design**: Works on desktop and mobile devices
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 3010
|
||||
- **URL**: `http://localhost:3010`
|
||||
- **Configuration**: YAML-based configuration files
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `HOMEPAGE_PORT`: External port mapping (default: 3010)
|
||||
- `PUID`: User ID for file permissions (default: 1000)
|
||||
- `PGID`: Group ID for file permissions (default: 1000)
|
||||
- `TZ`: Timezone setting (default: Etc/UTC)
|
||||
- `HOMEPAGE_ALLOWED_HOSTS`: Allowed hosts for the dashboard
|
||||
|
||||
### Configuration Files
|
||||
|
||||
Homepage uses YAML configuration files located in `./configs/homepage/`:
|
||||
|
||||
- `settings.yaml`: Global settings and theme configuration
|
||||
- `services.yaml`: Service definitions and widgets
|
||||
- `bookmarks.yaml`: Bookmark categories and links
|
||||
- `widgets.yaml`: Dashboard widgets configuration
|
||||
- `docker.yaml`: Docker integration settings
|
||||
|
||||
### Volumes
|
||||
|
||||
- `./configs/homepage:/app/config`: Configuration files
|
||||
- `./assets/icons:/app/public/icons`: Custom service icons
|
||||
- `./assets/images:/app/public/images`: Background images and assets
|
||||
- `/var/run/docker.sock:/var/run/docker.sock`: Docker socket for container monitoring
|
||||
|
||||
## Changemaker Lite Services
|
||||
|
||||
Homepage is pre-configured with all Changemaker Lite services:
|
||||
|
||||
### Essential Tools
|
||||
- **Code Server** (Port 8888): VS Code in the browser
|
||||
- **Listmonk** (Port 9000): Newsletter & mailing list manager
|
||||
- **NocoDB** (Port 8090): No-code database platform
|
||||
|
||||
### Content & Documentation
|
||||
- **MkDocs** (Port 4000): Live documentation server
|
||||
- **Static Site** (Port 4001): Built documentation hosting
|
||||
|
||||
### Automation & Data
|
||||
- **n8n** (Port 5678): Workflow automation platform
|
||||
- **PostgreSQL** (Port 5432): Database backends
|
||||
|
||||
## Customization
|
||||
|
||||
### Adding Custom Services
|
||||
|
||||
Edit `configs/homepage/services.yaml` to add new services:
|
||||
|
||||
```yaml
|
||||
- Custom Category:
|
||||
- My Service:
|
||||
href: http://localhost:8080
|
||||
description: Custom service description
|
||||
icon: mdi-application
|
||||
widget:
|
||||
type: ping
|
||||
url: http://localhost:8080
|
||||
```
|
||||
|
||||
### Custom Icons
|
||||
|
||||
Add custom icons to `./assets/icons/` directory and reference them in services.yaml:
|
||||
|
||||
```yaml
|
||||
icon: /icons/my-custom-icon.png
|
||||
```
|
||||
|
||||
### Themes and Styling
|
||||
|
||||
Modify `configs/homepage/settings.yaml` to customize appearance:
|
||||
|
||||
```yaml
|
||||
theme: dark # or light
|
||||
color: purple # slate, gray, zinc, neutral, stone, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
|
||||
```
|
||||
|
||||
### Widgets
|
||||
|
||||
Enable live monitoring widgets in `configs/homepage/services.yaml`:
|
||||
|
||||
```yaml
|
||||
- Service Name:
|
||||
widget:
|
||||
type: docker
|
||||
container: container-name
|
||||
server: my-docker
|
||||
```
|
||||
|
||||
## Service Monitoring
|
||||
|
||||
Homepage can display real-time status information for your services:
|
||||
|
||||
- **Docker Integration**: Container status and resource usage
|
||||
- **HTTP Ping**: Service availability monitoring
|
||||
- **Custom APIs**: Integration with service-specific APIs
|
||||
|
||||
## Docker Integration
|
||||
|
||||
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`
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Homepage runs with limited privileges
|
||||
- Configuration files should have appropriate permissions
|
||||
- Consider network isolation for production deployments
|
||||
- Use HTTPS for external access
|
||||
- Regularly update the Homepage image
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Configuration not loading**: Check YAML syntax in configuration files
|
||||
```bash
|
||||
docker logs homepage-changemaker
|
||||
```
|
||||
|
||||
**Icons not displaying**: Verify icon paths and file permissions
|
||||
```bash
|
||||
ls -la ./assets/icons/
|
||||
```
|
||||
|
||||
**Services not reachable**: Verify network connectivity between containers
|
||||
```bash
|
||||
docker exec homepage-changemaker ping service-name
|
||||
```
|
||||
|
||||
**Widget data not updating**: Check Docker socket permissions and container access
|
||||
```bash
|
||||
docker exec homepage-changemaker ls -la /var/run/docker.sock
|
||||
```
|
||||
|
||||
## Configuration Examples
|
||||
|
||||
### Basic Service Widget
|
||||
|
||||
```yaml
|
||||
- Code Server:
|
||||
href: http://localhost:8888
|
||||
description: VS Code in the browser
|
||||
icon: code-server
|
||||
widget:
|
||||
type: docker
|
||||
container: code-server-changemaker
|
||||
```
|
||||
|
||||
### Custom Dashboard Layout
|
||||
|
||||
```yaml
|
||||
# settings.yaml
|
||||
layout:
|
||||
style: columns
|
||||
columns: 3
|
||||
|
||||
# Responsive breakpoints
|
||||
responsive:
|
||||
mobile: 1
|
||||
tablet: 2
|
||||
desktop: 3
|
||||
```
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive configuration guides and advanced features:
|
||||
- [Homepage Documentation](https://gethomepage.dev/)
|
||||
- [GitHub Repository](https://github.com/gethomepage/homepage)
|
||||
- [Configuration Examples](https://gethomepage.dev/configs/)
|
||||
- [Widget Integrations](https://gethomepage.dev/widgets/)
|
||||
175
mkdocs/docs/services/index.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# Services
|
||||
|
||||
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.
|
||||
|
||||
## Available Services
|
||||
|
||||
### [Code Server](code-server.md)
|
||||
**Port: 8888** | Visual Studio Code in your browser for remote development
|
||||
- Full IDE experience
|
||||
- Extensions support
|
||||
- Git integration
|
||||
- Terminal access
|
||||
|
||||
### [Listmonk](listmonk.md)
|
||||
**Port: 9000** | Self-hosted newsletter and mailing list manager
|
||||
- Email campaigns
|
||||
- Subscriber management
|
||||
- Analytics
|
||||
- Template system
|
||||
|
||||
### [PostgreSQL](postgresql.md)
|
||||
**Port: 5432** | Reliable database backend
|
||||
- Data persistence for Listmonk
|
||||
- ACID compliance
|
||||
- High performance
|
||||
- Backup and restore capabilities
|
||||
|
||||
### [MkDocs Material](mkdocs.md)
|
||||
**Port: 4000** | Documentation site generator with live preview
|
||||
- Material Design theme
|
||||
- Live reload
|
||||
- Search functionality
|
||||
- Markdown support
|
||||
|
||||
### [Static Site Server](static-server.md)
|
||||
**Port: 4001** | Nginx-powered static site hosting
|
||||
- High-performance serving
|
||||
- Built documentation hosting
|
||||
- Caching and compression
|
||||
- Security headers
|
||||
|
||||
### [Silex](silex.md)
|
||||
**Port: 6805** | Visual website editor
|
||||
- Drag-and-drop web design
|
||||
- Filesystem-based storage
|
||||
- Template editing for MkDocs
|
||||
- No-code HTML creation
|
||||
|
||||
### [n8n](n8n.md)
|
||||
**Port: 5678** | Workflow automation tool
|
||||
- Visual workflow editor
|
||||
- 400+ integrations
|
||||
- Custom code execution
|
||||
- Webhook support
|
||||
|
||||
### [NocoDB](nocodb.md)
|
||||
**Port: 8090** | No-code database platform
|
||||
- Smart spreadsheet interface
|
||||
- Form builder and API generation
|
||||
- Real-time collaboration
|
||||
- Multi-database support
|
||||
|
||||
### [Homepage](homepage.md)
|
||||
**Port: 3010** | Modern dashboard for all services
|
||||
- Service dashboard and monitoring
|
||||
- Docker integration
|
||||
- Customizable layout
|
||||
- Quick search and bookmarks
|
||||
|
||||
## Service Architecture
|
||||
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ Homepage │ │ Code Server │ │ MkDocs │
|
||||
│ :3010 │ │ :8888 │ │ :4000 │
|
||||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ Static Server │ │ Listmonk │ │ n8n │
|
||||
│ :4001 │ │ :9000 │ │ :5678 │
|
||||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ NocoDB │ │ PostgreSQL │ │ PostgreSQL │
|
||||
│ :8090 │ │ (listmonk-db) │ │ (root_db) │
|
||||
└─────────────────┘ │ :5432 │ │ :5432 │
|
||||
│ └─────────────────┘ └─────────────────┘
|
||||
└──────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Getting Started
|
||||
|
||||
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`
|
||||
|
||||
## Service Dependencies
|
||||
|
||||
- **Listmonk** depends on **PostgreSQL** (listmonk-db)
|
||||
- **NocoDB** depends on **PostgreSQL** (root_db)
|
||||
- **Static Server** serves content built by **MkDocs**
|
||||
- **n8n** can integrate with all other services
|
||||
- All services share the `changemaker` network
|
||||
|
||||
## Environment Configuration
|
||||
|
||||
Services are configured through environment variables in your `.env` file:
|
||||
|
||||
```env
|
||||
# Port configurations
|
||||
CODE_SERVER_PORT=8888
|
||||
LISTMONK_PORT=9000
|
||||
LISTMONK_DB_PORT=5432
|
||||
MKDOCS_PORT=4000
|
||||
MKDOCS_SITE_SERVER_PORT=4001
|
||||
N8N_PORT=5678
|
||||
|
||||
# User and group IDs
|
||||
USER_ID=1000
|
||||
GROUP_ID=1000
|
||||
|
||||
# Database configuration
|
||||
POSTGRES_USER=listmonk
|
||||
POSTGRES_PASSWORD=your_password
|
||||
POSTGRES_DB=listmonk
|
||||
|
||||
# n8n configuration
|
||||
N8N_ENCRYPTION_KEY=your_encryption_key
|
||||
N8N_USER_EMAIL=admin@example.com
|
||||
N8N_USER_PASSWORD=your_password
|
||||
```
|
||||
|
||||
## Monitoring and Maintenance
|
||||
|
||||
### Health Checks
|
||||
```bash
|
||||
# Check all services
|
||||
docker compose ps
|
||||
|
||||
# Check specific service logs
|
||||
docker compose logs listmonk-app
|
||||
docker compose logs code-server
|
||||
```
|
||||
|
||||
### Updates
|
||||
```bash
|
||||
# Pull latest images
|
||||
docker compose pull
|
||||
|
||||
# Restart with new images
|
||||
docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
### Backups
|
||||
- **PostgreSQL**: Regular database backups
|
||||
- **n8n**: Export workflows and credentials
|
||||
- **Code Server**: Backup configuration and workspace
|
||||
- **MkDocs**: Version control your documentation
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
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
|
||||
|
||||
### Getting Help
|
||||
|
||||
- Check individual service documentation
|
||||
- Review container logs for error messages
|
||||
- Verify environment variable configuration
|
||||
- Test network connectivity between services
|
||||
66
mkdocs/docs/services/listmonk.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Listmonk
|
||||
|
||||
Self-hosted newsletter and mailing list manager.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- Newsletter and email campaign management
|
||||
- Subscriber list management
|
||||
- Template system with HTML/markdown support
|
||||
- Campaign analytics and tracking
|
||||
- API for integration
|
||||
- Multi-list support
|
||||
- Bounce handling
|
||||
- Privacy-focused design
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 9000
|
||||
- **URL**: `http://localhost:9000`
|
||||
- **Admin User**: Set via `LISTMONK_ADMIN_USER` environment variable
|
||||
- **Admin Password**: Set via `LISTMONK_ADMIN_PASSWORD` environment variable
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `LISTMONK_ADMIN_USER`: Admin username
|
||||
- `LISTMONK_ADMIN_PASSWORD`: Admin password
|
||||
- `POSTGRES_USER`: Database username
|
||||
- `POSTGRES_PASSWORD`: Database password
|
||||
- `POSTGRES_DB`: Database name
|
||||
|
||||
### Database
|
||||
|
||||
Listmonk uses PostgreSQL as its backend database. The database is automatically configured through the docker-compose setup.
|
||||
|
||||
### Uploads
|
||||
|
||||
- Upload directory: `./assets/uploads`
|
||||
- Used for media files, templates, and attachments
|
||||
|
||||
## Getting Started
|
||||
|
||||
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
|
||||
|
||||
## Important Notes
|
||||
|
||||
- Configure SMTP settings before sending emails
|
||||
- Set up proper domain authentication (SPF, DKIM) for better deliverability
|
||||
- Regularly backup your subscriber data and campaigns
|
||||
- Monitor bounce rates and maintain list hygiene
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive guides and API documentation, visit:
|
||||
- [Listmonk Documentation](https://listmonk.app/docs/)
|
||||
- [GitHub Repository](https://github.com/knadh/listmonk)
|
||||
124
mkdocs/docs/services/mkdocs.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# MkDocs Material
|
||||
|
||||
Modern documentation site generator with live preview.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- Material Design theme
|
||||
- Live preview during development
|
||||
- Search functionality
|
||||
- Navigation and organization
|
||||
- Code syntax highlighting
|
||||
- Mathematical expressions support
|
||||
- Responsive design
|
||||
- Customizable themes and colors
|
||||
|
||||
## Access
|
||||
|
||||
- **Development Port**: 4000
|
||||
- **Development URL**: `http://localhost:4000`
|
||||
- **Live Reload**: Automatically refreshes on file changes
|
||||
|
||||
## Configuration
|
||||
|
||||
### Main Configuration
|
||||
|
||||
Configuration is managed through `mkdocs.yml` in the project root.
|
||||
|
||||
### Volumes
|
||||
|
||||
- `./mkdocs`: Documentation source files
|
||||
- `./assets/images`: Shared images directory
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `SITE_URL`: Base domain for the site
|
||||
- `USER_ID`: User ID for file permissions
|
||||
- `GROUP_ID`: Group ID for file permissions
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
mkdocs/
|
||||
├── mkdocs.yml # Configuration file
|
||||
├── docs/ # Documentation source
|
||||
│ ├── index.md # Homepage
|
||||
│ ├── services/ # Service documentation
|
||||
│ ├── blog/ # Blog posts
|
||||
│ └── overrides/ # Template overrides
|
||||
└── site/ # Built static site
|
||||
```
|
||||
|
||||
## Writing Documentation
|
||||
|
||||
### Markdown Basics
|
||||
|
||||
- Use standard Markdown syntax
|
||||
- Support for tables, code blocks, and links
|
||||
- Mathematical expressions with MathJax
|
||||
- Admonitions for notes and warnings
|
||||
|
||||
### Example Page
|
||||
|
||||
```markdown
|
||||
# Page Title
|
||||
|
||||
This is a sample documentation page.
|
||||
|
||||
## Section
|
||||
|
||||
Content goes here with **bold** and *italic* text.
|
||||
|
||||
### Code Example
|
||||
|
||||
```python
|
||||
def hello_world():
|
||||
print("Hello, World!")
|
||||
```
|
||||
|
||||
!!! note
|
||||
This is an informational note.
|
||||
```
|
||||
|
||||
## Building and Deployment
|
||||
|
||||
### Development
|
||||
|
||||
The development server runs automatically with live reload.
|
||||
|
||||
### Building Static Site
|
||||
|
||||
```bash
|
||||
docker exec mkdocs-changemaker mkdocs build
|
||||
```
|
||||
|
||||
The built site will be available in the `mkdocs/site/` directory.
|
||||
|
||||
## Customization
|
||||
|
||||
### Themes and Colors
|
||||
|
||||
Customize appearance in `mkdocs.yml`:
|
||||
|
||||
```yaml
|
||||
theme:
|
||||
name: material
|
||||
palette:
|
||||
primary: blue
|
||||
accent: indigo
|
||||
```
|
||||
|
||||
### Custom CSS
|
||||
|
||||
Add custom styles in `docs/stylesheets/extra.css`.
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive MkDocs Material documentation:
|
||||
- [MkDocs Material](https://squidfunk.github.io/mkdocs-material/)
|
||||
- [MkDocs Documentation](https://www.mkdocs.org/)
|
||||
- [Markdown Guide](https://www.markdownguide.org/)
|
||||
145
mkdocs/docs/services/n8n.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# n8n
|
||||
|
||||
Workflow automation tool for connecting services and automating tasks.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- Visual workflow editor
|
||||
- 400+ integrations
|
||||
- Custom code execution (JavaScript/Python)
|
||||
- Webhook support
|
||||
- Scheduled workflows
|
||||
- Error handling and retries
|
||||
- User management
|
||||
- API access
|
||||
- Self-hosted and privacy-focused
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 5678
|
||||
- **URL**: `http://localhost:5678`
|
||||
- **Default User Email**: Set via `N8N_DEFAULT_USER_EMAIL`
|
||||
- **Default User Password**: Set via `N8N_DEFAULT_USER_PASSWORD`
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `N8N_HOST`: Hostname for n8n (default: `n8n.${DOMAIN}`)
|
||||
- `N8N_PORT`: Internal port (5678)
|
||||
- `N8N_PROTOCOL`: Protocol for webhooks (https)
|
||||
- `NODE_ENV`: Environment (production)
|
||||
- `WEBHOOK_URL`: Base URL for webhooks
|
||||
- `GENERIC_TIMEZONE`: Timezone setting
|
||||
- `N8N_ENCRYPTION_KEY`: Encryption key for credentials
|
||||
- `N8N_USER_MANAGEMENT_DISABLED`: Enable/disable user management
|
||||
- `N8N_DEFAULT_USER_EMAIL`: Default admin email
|
||||
- `N8N_DEFAULT_USER_PASSWORD`: Default admin password
|
||||
|
||||
### Volumes
|
||||
|
||||
- `n8n_data`: Persistent data storage
|
||||
- `./local-files`: Local file access for workflows
|
||||
|
||||
## Getting Started
|
||||
|
||||
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
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
### Documentation Automation
|
||||
- Auto-generate documentation from code comments
|
||||
- Sync documentation between different platforms
|
||||
- Notify team when documentation is updated
|
||||
|
||||
### Email Campaign Integration
|
||||
- Connect Listmonk with external data sources
|
||||
- Automate subscriber management
|
||||
- Trigger campaigns based on events
|
||||
|
||||
### Database Management with NocoDB
|
||||
- Sync data between NocoDB and external APIs
|
||||
- Automate data entry and validation
|
||||
- Create backup workflows for database content
|
||||
- Generate reports from NocoDB data
|
||||
|
||||
### Development Workflows
|
||||
- Auto-deploy documentation on git push
|
||||
- Sync code changes with documentation
|
||||
- Backup automation
|
||||
|
||||
### Data Processing
|
||||
- Process CSV files and import to databases
|
||||
- Transform data between different formats
|
||||
- Schedule regular data updates
|
||||
|
||||
## Example Workflows
|
||||
|
||||
### Simple Webhook to Email
|
||||
```
|
||||
Webhook → Email
|
||||
```
|
||||
|
||||
### Scheduled Documentation Backup
|
||||
```
|
||||
Schedule → Read Files → Compress → Upload to Storage
|
||||
```
|
||||
|
||||
### Git Integration
|
||||
```
|
||||
Git Webhook → Process Changes → Update Documentation → Notify Team
|
||||
```
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Use strong encryption keys
|
||||
- Secure webhook URLs
|
||||
- Regularly update credentials
|
||||
- Monitor workflow executions
|
||||
- Implement proper error handling
|
||||
|
||||
## Integration with Other Services
|
||||
|
||||
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
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
- **Workflow Execution Errors**: Check node configurations and credentials
|
||||
- **Webhook Issues**: Verify URLs and authentication
|
||||
- **Connection Problems**: Check network connectivity between services
|
||||
|
||||
### Debugging
|
||||
|
||||
```bash
|
||||
# Check container logs
|
||||
docker logs n8n-changemaker
|
||||
|
||||
# Access container shell
|
||||
docker exec -it n8n-changemaker sh
|
||||
|
||||
# Check workflow executions in the UI
|
||||
# Visit http://localhost:5678 → Executions
|
||||
```
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive n8n documentation:
|
||||
- [n8n Documentation](https://docs.n8n.io/)
|
||||
- [Community Workflows](https://n8n.io/workflows/)
|
||||
- [Node Reference](https://docs.n8n.io/integrations/builtin/)
|
||||
- [GitHub Repository](https://github.com/n8n-io/n8n)
|
||||
153
mkdocs/docs/services/nocodb.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# NocoDB
|
||||
|
||||
No-code database platform that turns any database into a smart spreadsheet.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- **Smart Spreadsheet Interface**: Transform databases into intuitive spreadsheets
|
||||
- **Form Builder**: Create custom forms for data entry
|
||||
- **API Generation**: Auto-generated REST APIs for all tables
|
||||
- **Collaboration**: Real-time collaboration with team members
|
||||
- **Access Control**: Role-based permissions and sharing
|
||||
- **Data Visualization**: Charts and dashboard creation
|
||||
- **Webhooks**: Integration with external services
|
||||
- **Import/Export**: Support for CSV, Excel, and other formats
|
||||
- **Multi-Database Support**: Works with PostgreSQL, MySQL, SQLite, and more
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 8090
|
||||
- **URL**: `http://localhost:8090`
|
||||
- **Database**: PostgreSQL (dedicated `root_db` instance)
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `NOCODB_PORT`: External port mapping (default: 8090)
|
||||
- `NC_DB`: Database connection string for PostgreSQL backend
|
||||
|
||||
### Database Backend
|
||||
|
||||
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)
|
||||
|
||||
### Volumes
|
||||
|
||||
- `nc_data`: Application data and configuration storage
|
||||
- `db_data`: PostgreSQL database files
|
||||
|
||||
## Getting Started
|
||||
|
||||
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
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
### Content Management
|
||||
- Create content databases for blogs and websites
|
||||
- Manage product catalogs and inventories
|
||||
- Track customer information and interactions
|
||||
|
||||
### Project Management
|
||||
- Task and project tracking systems
|
||||
- Team collaboration workspaces
|
||||
- Resource and timeline management
|
||||
|
||||
### Data Collection
|
||||
- Custom forms for surveys and feedback
|
||||
- Event registration and management
|
||||
- Lead capture and CRM systems
|
||||
|
||||
### Integration with Other Services
|
||||
|
||||
NocoDB can integrate well with other Changemaker Lite services:
|
||||
|
||||
- **n8n Integration**: Use NocoDB as a data source/destination in automation workflows
|
||||
- **Listmonk Integration**: Manage subscriber lists and campaign data
|
||||
- **Documentation**: Store and manage documentation metadata
|
||||
|
||||
## API Usage
|
||||
|
||||
NocoDB automatically generates REST APIs for all your tables:
|
||||
|
||||
```bash
|
||||
# Get all records from a table
|
||||
GET http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}
|
||||
|
||||
# Create a new record
|
||||
POST http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}
|
||||
|
||||
# Update a record
|
||||
PATCH http://localhost:8090/api/v1/db/data/v1/{project}/table/{table}/{id}
|
||||
```
|
||||
|
||||
## Backup and Data Management
|
||||
|
||||
### Database Backup
|
||||
|
||||
Since NocoDB uses PostgreSQL, you can backup the database:
|
||||
|
||||
```bash
|
||||
# Backup NocoDB database
|
||||
docker exec root_db pg_dump -U postgres root_db > nocodb_backup.sql
|
||||
|
||||
# Restore from backup
|
||||
docker exec -i root_db psql -U postgres root_db < nocodb_backup.sql
|
||||
```
|
||||
|
||||
### Application Data
|
||||
|
||||
Application settings and metadata are stored in the `nc_data` volume.
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Change default database credentials in production
|
||||
- Configure proper access controls within NocoDB
|
||||
- Use HTTPS for production deployments
|
||||
- Regularly backup both database and application data
|
||||
- Monitor access logs and user activities
|
||||
|
||||
## Performance Tips
|
||||
|
||||
- Regular database maintenance and optimization
|
||||
- Monitor memory usage for large datasets
|
||||
- Use appropriate indexing for frequently queried fields
|
||||
- Consider database connection pooling for high-traffic scenarios
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Service won't start**: Check if the PostgreSQL database is healthy
|
||||
```bash
|
||||
docker logs root_db
|
||||
```
|
||||
|
||||
**Database connection errors**: Verify database credentials and network connectivity
|
||||
```bash
|
||||
docker exec nocodb nc_data nc
|
||||
```
|
||||
|
||||
**Performance issues**: Monitor resource usage and optimize queries
|
||||
```bash
|
||||
docker stats nocodb root_db
|
||||
```
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive guides and advanced features:
|
||||
- [NocoDB Documentation](https://docs.nocodb.com/)
|
||||
- [GitHub Repository](https://github.com/nocodb/nocodb)
|
||||
- [Community Forum](https://community.nocodb.com/)
|
||||
90
mkdocs/docs/services/postgresql.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# PostgreSQL Database
|
||||
|
||||
Reliable database backend for applications.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- ACID compliance
|
||||
- Advanced SQL features
|
||||
- JSON/JSONB support
|
||||
- Full-text search
|
||||
- Extensibility
|
||||
- High performance
|
||||
- Reliability and data integrity
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 5432
|
||||
- **Host**: `listmonk-db` (internal container name)
|
||||
- **Database**: Set via `POSTGRES_DB` environment variable
|
||||
- **Username**: Set via `POSTGRES_USER` environment variable
|
||||
- **Password**: Set via `POSTGRES_PASSWORD` environment variable
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `POSTGRES_USER`: Database username
|
||||
- `POSTGRES_PASSWORD`: Database password
|
||||
- `POSTGRES_DB`: Database name
|
||||
|
||||
### Health Checks
|
||||
|
||||
The PostgreSQL container includes health checks to ensure the database is ready before dependent services start.
|
||||
|
||||
### Data Persistence
|
||||
|
||||
Database data is stored in a Docker volume (`listmonk-data`) to ensure persistence across container restarts.
|
||||
|
||||
## Connecting to the Database
|
||||
|
||||
### From Host Machine
|
||||
|
||||
You can connect to PostgreSQL from your host machine using:
|
||||
|
||||
```bash
|
||||
psql -h localhost -p 5432 -U [username] -d [database]
|
||||
```
|
||||
|
||||
### From Other Containers
|
||||
|
||||
Other containers can connect using the internal hostname `listmonk-db` on port 5432.
|
||||
|
||||
## Backup and Restore
|
||||
|
||||
### Backup
|
||||
|
||||
```bash
|
||||
docker exec listmonk-db pg_dump -U [username] [database] > backup.sql
|
||||
```
|
||||
|
||||
### Restore
|
||||
|
||||
```bash
|
||||
docker exec -i listmonk-db psql -U [username] [database] < backup.sql
|
||||
```
|
||||
|
||||
## Monitoring
|
||||
|
||||
Monitor database health and performance through:
|
||||
- Container logs: `docker logs listmonk-db`
|
||||
- Database metrics and queries
|
||||
- Connection monitoring
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Use strong passwords
|
||||
- Regularly update PostgreSQL version
|
||||
- Monitor access logs
|
||||
- Implement regular backups
|
||||
- Consider network isolation
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For comprehensive PostgreSQL documentation:
|
||||
- [PostgreSQL Documentation](https://www.postgresql.org/docs/)
|
||||
- [Docker PostgreSQL Image](https://hub.docker.com/_/postgres)
|
||||
112
mkdocs/docs/services/silex.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Silex - Visual Website Editor
|
||||
|
||||
Silex is a streamlined visual website editor that allows you to create and edit HTML pages with a drag-and-drop interface.
|
||||
|
||||
## Overview
|
||||
|
||||
This Changemaker setup uses the minimal `silexlabs/silex` image, which provides a focused, single-site editing experience. It's particularly useful for editing the `home.html` and `main.html` templates in your MkDocs overrides.
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 6805
|
||||
- **URL**: `http://localhost:6805`
|
||||
- **Container**: `silex-changemaker`
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `SILEX_PORT`: External port mapping (default: 6805)
|
||||
- `SILEX_HOST`: Hostname for Silex (default: `silex.${DOMAIN}`)
|
||||
|
||||
### Volume Mounts
|
||||
|
||||
Silex uses the following directories for persistence:
|
||||
|
||||
- **Storage**: `./silex/storage` - Site data and configurations
|
||||
- **Hosting**: `./silex/hosting` - Published files
|
||||
- **HTML Files**: `./mkdocs/docs/overrides` - Direct access to edit `home.html` and `main.html`
|
||||
|
||||
## Usage
|
||||
|
||||
### Getting Started
|
||||
|
||||
1. Access Silex at `http://localhost:6805`
|
||||
2. Create a new site or open an existing project
|
||||
3. Use the visual editor to design your pages
|
||||
4. Save your work to the mounted directories
|
||||
|
||||
### Editing MkDocs Templates
|
||||
|
||||
Silex is configured to have access to your MkDocs override templates:
|
||||
|
||||
- `home.html` - Custom home page template
|
||||
- `main.html` - Main template overrides
|
||||
|
||||
You can edit these files directly through Silex's visual interface.
|
||||
|
||||
### Features
|
||||
|
||||
- **Drag-and-Drop Interface**: Visual page building
|
||||
- **Filesystem Storage**: Simple file-based persistence
|
||||
- **Single Site Focus**: Streamlined for focused editing
|
||||
- **Responsive Design**: Mobile-friendly editing
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
silex/
|
||||
├── storage/ # Site configurations and data
|
||||
├── hosting/ # Published website files
|
||||
└── html/ # Direct access to MkDocs overrides
|
||||
├── home.html
|
||||
└── main.html
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
1. **Backup Important Files**: Always backup your templates before making changes
|
||||
2. **Test Changes**: Preview your changes in MkDocs before publishing
|
||||
3. **Use Version Control**: Commit your changes to git regularly
|
||||
4. **Responsive Design**: Test your designs on different screen sizes
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Port Conflicts
|
||||
|
||||
If port 6805 is already in use, you can change it in your `.env` file:
|
||||
|
||||
```bash
|
||||
SILEX_PORT=8080
|
||||
```
|
||||
|
||||
### File Permissions
|
||||
|
||||
If you encounter permission issues, ensure the mounted directories have the correct ownership:
|
||||
|
||||
```bash
|
||||
sudo chown -R 1000:1000 ./silex/
|
||||
```
|
||||
|
||||
### Container Issues
|
||||
|
||||
To restart the Silex container:
|
||||
|
||||
```bash
|
||||
docker-compose restart silex
|
||||
```
|
||||
|
||||
## Integration with MkDocs
|
||||
|
||||
Silex is particularly useful for editing MkDocs template overrides. After making changes in Silex:
|
||||
|
||||
1. Check your changes in the MkDocs live preview (`http://localhost:4000`)
|
||||
2. Build the static site if everything looks good
|
||||
3. Commit your changes to version control
|
||||
|
||||
## Resources
|
||||
|
||||
- [Silex Official Website](https://www.silex.me/)
|
||||
- [Silex Documentation](https://docs.silex.me/)
|
||||
- [Silex GitHub Repository (minimal version)](https://github.com/silexlabs/silex-lib)
|
||||
- [Docker Hub - Silex Minimal](https://hub.docker.com/r/silexlabs/silex)
|
||||
100
mkdocs/docs/services/static-server.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Static Site Server
|
||||
|
||||
Nginx-powered static site server for hosting built documentation and websites.
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Features
|
||||
|
||||
- High-performance static file serving
|
||||
- Automatic index file handling
|
||||
- Gzip compression
|
||||
- Caching headers
|
||||
- Security headers
|
||||
- Custom error pages
|
||||
- URL rewriting support
|
||||
|
||||
## Access
|
||||
|
||||
- **Default Port**: 4001
|
||||
- **URL**: `http://localhost:4001`
|
||||
- **Document Root**: `/config/www` (mounted from `./mkdocs/site`)
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `PUID`: User ID for file permissions (default: 1000)
|
||||
- `PGID`: Group ID for file permissions (default: 1000)
|
||||
- `TZ`: Timezone setting (default: Etc/UTC)
|
||||
|
||||
### Volumes
|
||||
|
||||
- `./mkdocs/site:/config/www`: Static site files
|
||||
- Built MkDocs site is automatically served
|
||||
|
||||
## Usage
|
||||
|
||||
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
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
mkdocs/site/ # Served at /
|
||||
├── index.html # Homepage
|
||||
├── assets/ # CSS, JS, images
|
||||
├── services/ # Service documentation
|
||||
└── search/ # Search functionality
|
||||
```
|
||||
|
||||
## Performance Features
|
||||
|
||||
- **Gzip Compression**: Automatic compression for text files
|
||||
- **Browser Caching**: Optimized cache headers
|
||||
- **Fast Static Serving**: Nginx optimized for static content
|
||||
- **Security Headers**: Basic security header configuration
|
||||
|
||||
## Custom Configuration
|
||||
|
||||
For advanced Nginx configuration, you can:
|
||||
1. Create custom Nginx config files
|
||||
2. Mount them as volumes
|
||||
3. Restart the container
|
||||
|
||||
## Monitoring
|
||||
|
||||
Monitor the static site server through:
|
||||
- Container logs: `docker logs mkdocs-site-server-changemaker`
|
||||
- Access logs for traffic analysis
|
||||
- Performance metrics
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
- **404 Errors**: Ensure MkDocs site is built and files exist in `./mkdocs/site/`
|
||||
- **Permission Issues**: Check `PUID` and `PGID` settings
|
||||
- **File Not Found**: Verify file paths and case sensitivity
|
||||
|
||||
### Debugging
|
||||
|
||||
```bash
|
||||
# Check container logs
|
||||
docker logs mkdocs-site-server-changemaker
|
||||
|
||||
# Verify files are present
|
||||
docker exec mkdocs-site-server-changemaker ls -la /config/www
|
||||
|
||||
# Test file serving
|
||||
curl -I http://localhost:4001
|
||||
```
|
||||
|
||||
## Official Documentation
|
||||
|
||||
For more information about the underlying Nginx server:
|
||||
- [LinuxServer.io Nginx](https://docs.linuxserver.io/images/docker-nginx)
|
||||
- [Nginx Documentation](https://nginx.org/en/docs/)
|
||||
66
mkdocs/mkdocs.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
site_name: Changemaker Lite Documentation
|
||||
site_description: Self-hosted platform for documentation and development
|
||||
site_url: https://changeme.org
|
||||
site_author: Bunker Ops
|
||||
docs_dir: docs
|
||||
site_dir: site
|
||||
|
||||
# Theme
|
||||
theme:
|
||||
name: material
|
||||
custom_dir: docs/overrides
|
||||
palette:
|
||||
scheme: slate
|
||||
primary: deep purple
|
||||
accent: amber
|
||||
features:
|
||||
- navigation.tracking
|
||||
- navigation.indexes
|
||||
- navigation.collapse
|
||||
- navigation.path
|
||||
- content.code.copy
|
||||
- navigation.top
|
||||
- navigation.tabs # Added for top-level navigation tabs
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
markdown_extensions:
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
- pymdownx.superfences
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
- attr_list
|
||||
- md_in_html
|
||||
- pymdownx.emoji # Simplified emoji config
|
||||
- footnotes
|
||||
- toc:
|
||||
permalink: true
|
||||
# The specific slugify line was removed to avoid previous tool error,
|
||||
# you may need to add back your preferred slugify option:
|
||||
# slugify: !!python/name:pymdownx.slugs.uslugify
|
||||
|
||||
copyright: Copyright © 2024 The Bunker Operations - Built with Change Maker
|
||||
|
||||
# Plugins
|
||||
plugins:
|
||||
- social
|
||||
- search
|
||||
- blog
|
||||
# - tags # Consider adding if you use tags for your blog or docs
|
||||
|
||||
# Navigation
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Getting Started: getting-started.md
|
||||
- Services:
|
||||
- Overview: services/index.md
|
||||
- Homepage: services/homepage.md
|
||||
- Code Server: services/code-server.md
|
||||
- MkDocs Material: services/mkdocs.md
|
||||
- Static Site Server: services/static-server.md
|
||||
- Listmonk: services/listmonk.md
|
||||
- PostgreSQL: services/postgresql.md
|
||||
- n8n: services/n8n.md
|
||||
- NocoDB: services/nocodb.md
|
||||
- Blog: blog/index.md
|
||||
708
mkdocs/site/404.html
Normal file
@@ -0,0 +1,708 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<meta name="description" content="Self-hosted platform for documentation and development">
|
||||
|
||||
|
||||
<meta name="author" content="Bunker Ops">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="icon" href="/assets/images/favicon.png">
|
||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
|
||||
|
||||
|
||||
|
||||
<title>Changemaker Lite Documentation</title>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/assets/stylesheets/main.342714a4.min.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/assets/stylesheets/palette.06af60db.min.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="amber">
|
||||
|
||||
|
||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||||
<label class="md-overlay" for="__drawer"></label>
|
||||
<div data-md-component="skip">
|
||||
|
||||
</div>
|
||||
<div data-md-component="announce">
|
||||
|
||||
<aside class="md-banner">
|
||||
<div class="md-banner__inner md-grid md-typeset">
|
||||
|
||||
|
||||
<a href="https://homepage.test.com" class="login-button">Login</a>
|
||||
Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
|
||||
|
||||
</div>
|
||||
|
||||
</aside>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||||
<a href="/." title="Changemaker Lite Documentation" class="md-header__button md-logo" aria-label="Changemaker Lite Documentation" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||||
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
||||
</label>
|
||||
<div class="md-header__title" data-md-component="header-title">
|
||||
<div class="md-header__ellipsis">
|
||||
<div class="md-header__topic">
|
||||
<span class="md-ellipsis">
|
||||
Changemaker Lite Documentation
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
||||
</label>
|
||||
<nav class="md-search__options" aria-label="Search">
|
||||
|
||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list" role="presentation"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
<div class="md-container" data-md-component="container">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
||||
<div class="md-grid">
|
||||
<ul class="md-tabs__list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/." class="md-tabs__link">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Home
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/getting-started/" class="md-tabs__link">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Getting Started
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/services/" class="md-tabs__link">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Services
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/blog/" class="md-tabs__link">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Index
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<main class="md-main" data-md-component="main">
|
||||
<div class="md-main__inner md-grid">
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a href="/." title="Changemaker Lite Documentation" class="md-nav__button md-logo" aria-label="Changemaker Lite Documentation" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||||
|
||||
</a>
|
||||
Changemaker Lite Documentation
|
||||
</label>
|
||||
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/." class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Home
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/getting-started/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Getting Started
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
||||
|
||||
|
||||
<div class="md-nav__link md-nav__container">
|
||||
<a href="/services/" class="md-nav__link ">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Services
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
Services
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/homepage/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Homepage
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/code-server/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Code Server
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/mkdocs/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
MkDocs Material
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/static-server/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Static Site Server
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/listmonk/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Listmonk
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/postgresql/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
PostgreSQL
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/n8n/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
n8n
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/services/nocodb/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
NocoDB
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/blog/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
Index
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||||
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-content" data-md-component="content">
|
||||
<article class="md-content__inner md-typeset">
|
||||
|
||||
<h1>404 - Not found</h1>
|
||||
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||||
</div>
|
||||
|
||||
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
||||
Back to top
|
||||
</button>
|
||||
|
||||
</main>
|
||||
|
||||
<footer class="md-footer">
|
||||
|
||||
<div class="md-footer-meta md-typeset">
|
||||
<div class="md-footer-meta__inner md-grid">
|
||||
<div class="md-copyright">
|
||||
|
||||
<div class="md-copyright__highlight">
|
||||
Copyright © 2024 The Bunker Operations - Built with Change Maker
|
||||
</div>
|
||||
|
||||
|
||||
Made with
|
||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||||
Material for MkDocs
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<script id="__config" type="application/json">{"base": "/", "features": ["navigation.tracking", "navigation.indexes", "navigation.collapse", "navigation.path", "content.code.copy", "navigation.top", "navigation.tabs"], "search": "/assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
||||
|
||||
|
||||
<script src="/assets/javascripts/bundle.13a4f30d.min.js"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
mkdocs/site/assets/images/favicon.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
mkdocs/site/assets/images/social/blog/index.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
mkdocs/site/assets/images/social/getting-started.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
mkdocs/site/assets/images/social/index.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
mkdocs/site/assets/images/social/services/code-server.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
mkdocs/site/assets/images/social/services/homepage.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
mkdocs/site/assets/images/social/services/index.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
mkdocs/site/assets/images/social/services/listmonk.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
mkdocs/site/assets/images/social/services/mkdocs.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mkdocs/site/assets/images/social/services/n8n.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
mkdocs/site/assets/images/social/services/nocodb.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
mkdocs/site/assets/images/social/services/postgresql.png
Normal file
|
After Width: | Height: | Size: 34 KiB |