documentation for maps and stuff

This commit is contained in:
admin 2025-07-01 09:33:27 -06:00
parent 4aa0c225e2
commit 9963c57b9b
57 changed files with 2698 additions and 290 deletions

View File

@ -520,30 +520,71 @@ load_env_vars() {
fi
}
# Function to update the map's .env file with domain settings
# Function to update or create the map's .env file with domain settings
update_map_env() {
local new_domain=$1
# If the map .env file does not exist, create it with defaults
if [ ! -f "$MAP_ENV_FILE" ]; then
echo "Warning: Map .env file not found at $MAP_ENV_FILE"
return 1
echo "Map .env file not found at $MAP_ENV_FILE, creating a new one with defaults."
cat > "$MAP_ENV_FILE" <<EOL
NOCODB_API_URL=https://db.$new_domain/api/v1
NOCODB_API_TOKEN=changeme
# NocoDB View URL is the URL to your NocoDB view where the map data is stored.
NOCODB_VIEW_URL=https://db.$new_domain/dashboard/#/nc/your_project_id/your_view_id
# NOCODB_LOGIN_SHEET is the URL to your NocoDB login sheet.
NOCODB_LOGIN_SHEET=https://db.$new_domain/dashboard/#/nc/your_project_id/your_login_sheet_id
# Server Configuration
PORT=3000
NODE_ENV=production
# Session Secret (IMPORTANT: Generate a secure random string for production)
# You can generate one with: openssl rand -hex 32
SESSION_SECRET=$(openssl rand -hex 32 2>/dev/null || echo "changeme")
# Map Defaults (Edmonton, Alberta, Canada)
DEFAULT_LAT=53.5461
DEFAULT_LNG=-113.4938
DEFAULT_ZOOM=11
# Optional: Map Boundaries (prevents users from adding points outside area)
# BOUND_NORTH=53.7
# BOUND_SOUTH=53.4
# BOUND_EAST=-113.3
# BOUND_WEST=-113.7
# Cloudflare Settings
TRUST_PROXY=true
COOKIE_DOMAIN=.$new_domain
# Update NODE_ENV to production for HTTPS
NODE_ENV=production
# Add allowed origin
ALLOWED_ORIGINS=https://map.$new_domain,http://localhost:3000
EOL
echo "✅ Created new map .env file at $MAP_ENV_FILE"
return 0
fi
echo "Updating map .env file with new domain settings..."
# Create a backup of the map's .env file
local timestamp=$(date +"%Y%m%d_%H%M%S")
local backup_file="${MAP_ENV_FILE}.backup_${timestamp}"
cp "$MAP_ENV_FILE" "$backup_file"
echo "Created backup of map .env at $backup_file"
# Update COOKIE_DOMAIN
if grep -q "^COOKIE_DOMAIN=" "$MAP_ENV_FILE"; then
sed -i "s|^COOKIE_DOMAIN=.*|COOKIE_DOMAIN=.$new_domain|" "$MAP_ENV_FILE"
else
echo "COOKIE_DOMAIN=.$new_domain" >> "$MAP_ENV_FILE"
fi
# Update ALLOWED_ORIGINS
local allowed_origins="https://map.$new_domain,http://localhost:3000"
if grep -q "^ALLOWED_ORIGINS=" "$MAP_ENV_FILE"; then
@ -551,12 +592,12 @@ update_map_env() {
else
echo "ALLOWED_ORIGINS=$allowed_origins" >> "$MAP_ENV_FILE"
fi
# Also update the NOCODB URLs if they contain domain references
sed -i "s|example\.org|$new_domain|g" "$MAP_ENV_FILE"
sed -i "s|changeme\.org|$new_domain|g" "$MAP_ENV_FILE"
sed -i "s|albertademocracytaskforce\.org|$new_domain|g" "$MAP_ENV_FILE"
echo "✅ Updated map .env file with:"
echo " - COOKIE_DOMAIN=.$new_domain"
echo " - ALLOWED_ORIGINS=$allowed_origins"

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -7,10 +7,10 @@
"stars_count": 0,
"forks_count": 0,
"open_issues_count": 0,
"updated_at": "2025-06-30T15:50:33-06:00",
"updated_at": "2025-06-30T21:38:32-06:00",
"created_at": "2025-05-28T14:54:59-06:00",
"clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git",
"ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git",
"default_branch": "main",
"last_build_update": "2025-06-30T15:50:33-06:00"
"last_build_update": "2025-06-30T21:38:32-06:00"
}

View File

@ -4,13 +4,13 @@
"description": "VS Code in the browser",
"html_url": "https://github.com/coder/code-server",
"language": "TypeScript",
"stars_count": 72493,
"forks_count": 6061,
"open_issues_count": 133,
"updated_at": "2025-07-01T00:35:58Z",
"stars_count": 72508,
"forks_count": 6062,
"open_issues_count": 142,
"updated_at": "2025-07-01T15:16:52Z",
"created_at": "2019-02-27T16:50:41Z",
"clone_url": "https://github.com/coder/code-server.git",
"ssh_url": "git@github.com:coder/code-server.git",
"default_branch": "main",
"last_build_update": "2025-06-25T21:18:52Z"
"last_build_update": "2025-07-01T13:04:15Z"
}

View File

@ -4,13 +4,13 @@
"description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.",
"html_url": "https://github.com/gethomepage/homepage",
"language": "JavaScript",
"stars_count": 24565,
"forks_count": 1520,
"stars_count": 24583,
"forks_count": 1519,
"open_issues_count": 1,
"updated_at": "2025-06-30T20:44:09Z",
"updated_at": "2025-07-01T15:20:04Z",
"created_at": "2022-08-24T07:29:42Z",
"clone_url": "https://github.com/gethomepage/homepage.git",
"ssh_url": "git@github.com:gethomepage/homepage.git",
"default_branch": "dev",
"last_build_update": "2025-07-01T00:41:49Z"
"last_build_update": "2025-07-01T12:14:06Z"
}

View File

@ -4,13 +4,13 @@
"description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD",
"html_url": "https://github.com/go-gitea/gitea",
"language": "Go",
"stars_count": 49312,
"forks_count": 5886,
"open_issues_count": 2714,
"updated_at": "2025-06-30T22:55:41Z",
"stars_count": 49327,
"forks_count": 5887,
"open_issues_count": 2706,
"updated_at": "2025-07-01T14:28:19Z",
"created_at": "2016-11-01T02:13:26Z",
"clone_url": "https://github.com/go-gitea/gitea.git",
"ssh_url": "git@github.com:go-gitea/gitea.git",
"default_branch": "main",
"last_build_update": "2025-06-30T22:55:36Z"
"last_build_update": "2025-07-01T13:44:05Z"
}

View File

@ -4,10 +4,10 @@
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.",
"html_url": "https://github.com/knadh/listmonk",
"language": "Go",
"stars_count": 17238,
"stars_count": 17242,
"forks_count": 1657,
"open_issues_count": 104,
"updated_at": "2025-06-30T20:57:12Z",
"updated_at": "2025-07-01T14:26:50Z",
"created_at": "2019-06-26T05:08:39Z",
"clone_url": "https://github.com/knadh/listmonk.git",
"ssh_url": "git@github.com:knadh/listmonk.git",

View File

@ -6,11 +6,11 @@
"language": "Vue",
"stars_count": 1254,
"forks_count": 164,
"open_issues_count": 14,
"updated_at": "2025-06-30T20:22:20Z",
"open_issues_count": 13,
"updated_at": "2025-07-01T14:06:12Z",
"created_at": "2023-04-21T14:20:14Z",
"clone_url": "https://github.com/lyqht/mini-qr.git",
"ssh_url": "git@github.com:lyqht/mini-qr.git",
"default_branch": "main",
"last_build_update": "2025-06-23T05:55:30Z"
"last_build_update": "2025-07-01T14:06:08Z"
}

View File

@ -4,13 +4,13 @@
"description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.",
"html_url": "https://github.com/n8n-io/n8n",
"language": "TypeScript",
"stars_count": 113658,
"forks_count": 33263,
"open_issues_count": 1062,
"updated_at": "2025-07-01T00:43:52Z",
"stars_count": 113903,
"forks_count": 33364,
"open_issues_count": 1058,
"updated_at": "2025-07-01T15:22:32Z",
"created_at": "2019-06-22T09:24:21Z",
"clone_url": "https://github.com/n8n-io/n8n.git",
"ssh_url": "git@github.com:n8n-io/n8n.git",
"default_branch": "master",
"last_build_update": "2025-06-30T20:59:49Z"
"last_build_update": "2025-07-01T15:23:16Z"
}

View File

@ -4,13 +4,13 @@
"description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 Open Source Airtable Alternative",
"html_url": "https://github.com/nocodb/nocodb",
"language": "TypeScript",
"stars_count": 55468,
"forks_count": 3981,
"stars_count": 55480,
"forks_count": 3987,
"open_issues_count": 714,
"updated_at": "2025-06-30T23:29:28Z",
"updated_at": "2025-07-01T14:03:05Z",
"created_at": "2017-10-29T18:51:48Z",
"clone_url": "https://github.com/nocodb/nocodb.git",
"ssh_url": "git@github.com:nocodb/nocodb.git",
"default_branch": "develop",
"last_build_update": "2025-06-30T23:13:56Z"
"last_build_update": "2025-07-01T14:26:19Z"
}

View File

@ -4,13 +4,13 @@
"description": "Documentation that simply works",
"html_url": "https://github.com/squidfunk/mkdocs-material",
"language": "Python",
"stars_count": 23759,
"forks_count": 3783,
"stars_count": 23763,
"forks_count": 3786,
"open_issues_count": 4,
"updated_at": "2025-07-01T00:38:44Z",
"updated_at": "2025-07-01T13:38:53Z",
"created_at": "2016-01-28T22:09:23Z",
"clone_url": "https://github.com/squidfunk/mkdocs-material.git",
"ssh_url": "git@github.com:squidfunk/mkdocs-material.git",
"default_branch": "master",
"last_build_update": "2025-06-29T16:43:26Z"
"last_build_update": "2025-07-01T12:56:28Z"
}

View File

@ -224,9 +224,15 @@ Once services are running, access them locally:
- **NocoDB**: [http://localhost:8090](http://localhost:8090) — No-code database
### 🛠️ Interactive Tools
- **Map Viewer**: [http://localhost:3000](http://localhost:3000) — Geographic data visualization
- **Mini QR**: [http://localhost:8089](http://localhost:8089) — QR code generator
## Map
!!! warning "Map"
Map is the canvassing application that is custom view of nocodb data. Map is best built **after production deployment** to reduce duplicate build efforts.
### [Map Manual](map.md)
## Production Deployment
### Deploy with Cloudflare Tunnels

143
mkdocs/docs/build/map.md vendored Normal file
View File

@ -0,0 +1,143 @@
# Map
Map is BNKops canvassing application. It is built from the ground up to serve our community (Edmonton).
## Prerequisites
- Docker and Docker Compose installed
- NocoDB instance with API access
- Domain name (optional but recommended for production)
## NocoDB Table Setup
### Required Columns
Create a table in NocoDB with these required columns. The format here is the `Name of the column - column type - details`:
1. **Geo Location** (geo-data) - Format: "latitude;longitude"
2. **latitude** (Decimal) - Precision: 10, Scale: 8
3. **longitude** (Decimal) - Precision: 11, Scale: 8
### Recommended Columns
- First Name (Text)
- Last Name (Text)
- Email (Email)
- Phone (Phone)
- Unit Number (Text)
- Address (LongText)
- Support Level (Single Select) - Values (only enter numbers):
- 1 `Strong Support (Green)`
- 2 `Moderate Support (Yellow)`
- 3 `Low Support (Orange)`
- 4 `No Support (Red)`
- Sign (Checkbox)
- Sign Size (Single Select) - Values: Small, Medium, Large
- Notes (LongText)
## Login Sheet Setup
Create a separate table for authorized users with:
- Email (Email) - Primary column
- Name (Text) - Optional
## API Token Setup
1. In NocoDB, click user icon → Account Settings
2. Go to "API Tokens" tab
3. Create new token with read/write permissions for both tables
## 6. Finding NocoDB IDs
- **Project and Table IDs**: Use the full NocoDB view URL in `NOCODB_VIEW_URL`
- **Login Sheet ID**: Use the full URL to your login sheet in `NOCODB_LOGIN_SHEET`
## Environment Configuration
!!! note "Config"
The `./config.sh` should have created a new `.env` file. If `.env` file is present, and it has properly defined domain, skip to step 2
1. Copy the example env file:
```bash
cp .env.example .env
```
2. Edit .env with your NocoDB details:
```env
NOCODB_API_URL=https://your-nocodb-instance.com/api/v1
NOCODB_API_TOKEN=your-api-token-here
NOCODB_VIEW_URL=https://your-nocodb-instance.com/dashboard/#/nc/project-id/table-id
NOCODB_LOGIN_SHEET=https://your-nocodb-instance.com/dashboard/#/nc/project-id/login-sheet-id
# Server Configuration
PORT=3000
NODE_ENV=production
# Session Secret (generate with: openssl rand -hex 32)
SESSION_SECRET=your-secure-random-string
# Map Defaults
DEFAULT_LAT=53.5461
DEFAULT_LNG=-113.4938
DEFAULT_ZOOM=11
# Optional: Map Boundaries
# BOUND_NORTH=53.7
# BOUND_SOUTH=53.4
# BOUND_EAST=-113.3
# BOUND_WEST=-113.7
# Domain Settings (for cookies)
COOKIE_DOMAIN=.yourdomain.com
ALLOWED_ORIGINS=https://map.yourdomain.com,http://localhost:3000
```
## Running the Application
### Development Mode
```bash
cd app
npm install
npm run dev
```
### Production with Docker
```bash
docker-compose up -d
```
## First Run
1. Access the application at `http://localhost:3000` (or your domain)
2. Login with an email from your authorized users list
3. Verify locations appear on the map
## Maintenance
- To clear the geocoding cache, restart the application
- To update the application:
```bash
docker-compose down
git pull origin main
docker-compose up -d --build
```
## Troubleshooting
- **Locations not showing**: Verify table has required columns and API token has read permissions
- **Cannot add locations**: Check API token has write permissions
- **Authentication issues**: Verify login sheet is properly configured
## Security Recommendations
1. Use HTTPS in production
2. Regularly rotate API tokens
3. Restrict API token permissions to only what's needed
4. Set appropriate CORS and cookie domains
5. Keep dependencies updated
The application will automatically:
- Parse project/table IDs from view URLs
- Sync geo fields between different formats
- Cache geocoding results for performance
- Rate limit API endpoints
- Validate all inputs

View File

@ -17,8 +17,8 @@
<!-- Main Hero Block -->
<div class="hero-main grid-card">
<div class="meta-badge">🤯 This Site Runs On Changemaker Lite</div>
<h1>The Only Free and Open Source Political Campaign Stack</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled and your supports data sold to the highest bidder. Run your entire political campaign on ~$200 hardware and
<h1>The Only Free and Open Source Political Campaign Platform</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled. Your supporters data deserves better. Run your entire political campaign on ~$200 hardware and
with fewer corporate dependencies every day.</p>
<div class="hero-ctas">
@ -37,7 +37,7 @@
<div class="problem-item">👁️ Surveillance: Always on</div>
<div class="problem-item">🔒 Vendor lock-in: Trapped forever</div>
<div class="problem-item">📉 Data ownership: Not yours</div>
<div class="promlem-itme">😠 Implicitly Supporting Evil Corporations</div>
<div class="problem-item">😠 Implicitly Supporting Evil Corporations</div>
</div>
</div>

View File

@ -200,4 +200,4 @@ Most campaigns recover their entire first-year investment in **60-90 days** thro
---
*Ready to stop feeding your budget to corporate surveillance? [Get started with Changemaker Lite today](./build/index.md) and take control of your digital infrastructure.*
*Ready to stop feeding your budget to corporate surveillance? [Get started with Changemaker Lite today](../build/index.md) and take control of your digital infrastructure.*

View File

@ -38,9 +38,9 @@ Corporate platforms don't make money from your subscription fees—they make mon
### Our Principles
#### 🏳️‍⚧️ 🇵🇸 Liberation First
#### 🏳️‍⚧️ 🏳️‍🌈 🇵🇸 Liberation First
Technology that centers the most marginalized voices and fights for collective liberation. Trans rights are human rights, and our tools reflect this commitment.
Technology that centers the most marginalized voices and fights for collective liberation. We believe strongly that the medium is the message; if you the use the medium of fascists, what does that say about your movement?
#### 🤝 Community Over Profit

View File

@ -151,10 +151,11 @@ nav:
- How To Not Get Got Making Content: https://docs.bnkops.com/archive/repo.archive/thatreallyblondehuman/Thoughts%20%F0%9F%A4%94/How%20not%20to%20get%20got%20making%20content%20v2/
- Digital Organizing: https://docs.bnkops.com/archive/repo.archive/thatreallyblondehuman/Thoughts%20%F0%9F%A4%94/Distributed%20Digital%20Organizing%20is%20The%20Way%20Out/#why-not-give-it-a-shot
- What is Security Culture: https://docs.bnkops.com/archive/repo.archive/Zines%20We%20Like%20%F0%9F%98%8E/What%20Is%20Security%20Culture%20%E2%98%A0/#what-is-security-culture
- Cost Comparison: cost-comparison.md
- Cost Comparison: phil/cost-comparison.md
- Getting Started:
- build/index.md
- Build Server: build/build-server.md
- Build Map: build/map.md
- Services:
- services/index.md
- Homepage: services/homepage.md

View File

@ -472,6 +472,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -7,10 +7,10 @@
"stars_count": 0,
"forks_count": 0,
"open_issues_count": 0,
"updated_at": "2025-06-30T15:50:33-06:00",
"updated_at": "2025-06-30T21:38:32-06:00",
"created_at": "2025-05-28T14:54:59-06:00",
"clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git",
"ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git",
"default_branch": "main",
"last_build_update": "2025-06-30T15:50:33-06:00"
"last_build_update": "2025-06-30T21:38:32-06:00"
}

View File

@ -4,13 +4,13 @@
"description": "VS Code in the browser",
"html_url": "https://github.com/coder/code-server",
"language": "TypeScript",
"stars_count": 72492,
"forks_count": 6060,
"open_issues_count": 132,
"updated_at": "2025-06-30T22:24:27Z",
"stars_count": 72508,
"forks_count": 6062,
"open_issues_count": 142,
"updated_at": "2025-07-01T15:16:52Z",
"created_at": "2019-02-27T16:50:41Z",
"clone_url": "https://github.com/coder/code-server.git",
"ssh_url": "git@github.com:coder/code-server.git",
"default_branch": "main",
"last_build_update": "2025-06-25T21:18:52Z"
"last_build_update": "2025-07-01T13:04:15Z"
}

View File

@ -4,13 +4,13 @@
"description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.",
"html_url": "https://github.com/gethomepage/homepage",
"language": "JavaScript",
"stars_count": 24565,
"forks_count": 1520,
"stars_count": 24583,
"forks_count": 1519,
"open_issues_count": 1,
"updated_at": "2025-06-30T20:44:09Z",
"updated_at": "2025-07-01T15:20:04Z",
"created_at": "2022-08-24T07:29:42Z",
"clone_url": "https://github.com/gethomepage/homepage.git",
"ssh_url": "git@github.com:gethomepage/homepage.git",
"default_branch": "dev",
"last_build_update": "2025-06-30T12:13:58Z"
"last_build_update": "2025-07-01T12:14:06Z"
}

View File

@ -4,13 +4,13 @@
"description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD",
"html_url": "https://github.com/go-gitea/gitea",
"language": "Go",
"stars_count": 49312,
"forks_count": 5886,
"open_issues_count": 2714,
"updated_at": "2025-06-30T22:55:41Z",
"stars_count": 49327,
"forks_count": 5887,
"open_issues_count": 2706,
"updated_at": "2025-07-01T14:28:19Z",
"created_at": "2016-11-01T02:13:26Z",
"clone_url": "https://github.com/go-gitea/gitea.git",
"ssh_url": "git@github.com:go-gitea/gitea.git",
"default_branch": "main",
"last_build_update": "2025-06-30T22:55:36Z"
"last_build_update": "2025-07-01T13:44:05Z"
}

View File

@ -4,10 +4,10 @@
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.",
"html_url": "https://github.com/knadh/listmonk",
"language": "Go",
"stars_count": 17238,
"stars_count": 17242,
"forks_count": 1657,
"open_issues_count": 103,
"updated_at": "2025-06-30T20:57:12Z",
"open_issues_count": 104,
"updated_at": "2025-07-01T14:26:50Z",
"created_at": "2019-06-26T05:08:39Z",
"clone_url": "https://github.com/knadh/listmonk.git",
"ssh_url": "git@github.com:knadh/listmonk.git",

View File

@ -6,11 +6,11 @@
"language": "Vue",
"stars_count": 1254,
"forks_count": 164,
"open_issues_count": 14,
"updated_at": "2025-06-30T20:22:20Z",
"open_issues_count": 13,
"updated_at": "2025-07-01T14:06:12Z",
"created_at": "2023-04-21T14:20:14Z",
"clone_url": "https://github.com/lyqht/mini-qr.git",
"ssh_url": "git@github.com:lyqht/mini-qr.git",
"default_branch": "main",
"last_build_update": "2025-06-23T05:55:30Z"
"last_build_update": "2025-07-01T14:06:08Z"
}

View File

@ -4,13 +4,13 @@
"description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.",
"html_url": "https://github.com/n8n-io/n8n",
"language": "TypeScript",
"stars_count": 113638,
"forks_count": 33255,
"open_issues_count": 1062,
"updated_at": "2025-06-30T23:17:40Z",
"stars_count": 113903,
"forks_count": 33364,
"open_issues_count": 1058,
"updated_at": "2025-07-01T15:22:32Z",
"created_at": "2019-06-22T09:24:21Z",
"clone_url": "https://github.com/n8n-io/n8n.git",
"ssh_url": "git@github.com:n8n-io/n8n.git",
"default_branch": "master",
"last_build_update": "2025-06-30T20:59:49Z"
"last_build_update": "2025-07-01T15:23:16Z"
}

View File

@ -4,13 +4,13 @@
"description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 Open Source Airtable Alternative",
"html_url": "https://github.com/nocodb/nocodb",
"language": "TypeScript",
"stars_count": 55467,
"forks_count": 3981,
"stars_count": 55480,
"forks_count": 3987,
"open_issues_count": 714,
"updated_at": "2025-06-30T23:16:30Z",
"updated_at": "2025-07-01T14:03:05Z",
"created_at": "2017-10-29T18:51:48Z",
"clone_url": "https://github.com/nocodb/nocodb.git",
"ssh_url": "git@github.com:nocodb/nocodb.git",
"default_branch": "develop",
"last_build_update": "2025-06-30T23:13:56Z"
"last_build_update": "2025-07-01T14:26:19Z"
}

View File

@ -4,13 +4,13 @@
"description": "Documentation that simply works",
"html_url": "https://github.com/squidfunk/mkdocs-material",
"language": "Python",
"stars_count": 23757,
"forks_count": 3783,
"stars_count": 23763,
"forks_count": 3786,
"open_issues_count": 4,
"updated_at": "2025-06-30T21:37:52Z",
"updated_at": "2025-07-01T13:38:53Z",
"created_at": "2016-01-28T22:09:23Z",
"clone_url": "https://github.com/squidfunk/mkdocs-material.git",
"ssh_url": "git@github.com:squidfunk/mkdocs-material.git",
"default_branch": "master",
"last_build_update": "2025-06-29T16:43:26Z"
"last_build_update": "2025-07-01T12:56:28Z"
}

View File

@ -504,6 +504,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>

View File

@ -18,7 +18,7 @@
<link rel="prev" href="../">
<link rel="next" href="../../services/">
<link rel="next" href="../map/">
<link rel="icon" href="../../assets/images/favicon.png">
@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -885,6 +887,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -934,7 +959,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<div class="md-nav__link md-nav__container">
@ -951,14 +976,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1262,7 +1287,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1279,14 +1304,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>
@ -1840,13 +1865,13 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<a href="../../services/" class="md-footer__link md-footer__link--next" aria-label="Next: Services">
<a href="../map/" class="md-footer__link md-footer__link--next" aria-label="Next: Build Map">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Services
Build Map
</div>
</div>
<div class="md-footer__button md-icon">

View File

@ -15,7 +15,7 @@
<link rel="canonical" href="https://cmlite.org/build/">
<link rel="prev" href="../cost-comparison/">
<link rel="prev" href="../phil/cost-comparison/">
<link rel="next" href="build-server/">
@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -595,6 +597,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -972,7 +997,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -989,14 +1014,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>
@ -1358,6 +1383,30 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#map" class="md-nav__link">
<span class="md-ellipsis">
Map
</span>
</a>
<nav class="md-nav" aria-label="Map">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#map-manual" class="md-nav__link">
<span class="md-ellipsis">
Map Manual
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@ -1755,9 +1804,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</ul>
<h3 id="interactive-tools">🛠️ Interactive Tools<a class="headerlink" href="#interactive-tools" title="Permanent link">&para;</a></h3>
<ul>
<li><strong>Map Viewer</strong>: <a href="http://localhost:3000">http://localhost:3000</a> — Geographic data visualization </li>
<li><strong>Mini QR</strong>: <a href="http://localhost:8089">http://localhost:8089</a> — QR code generator</li>
</ul>
<h2 id="map">Map<a class="headerlink" href="#map" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">Map</p>
<p>Map is the canvassing application that is custom view of nocodb data. Map is best built <strong>after production deployment</strong> to reduce duplicate build efforts. </p>
</div>
<h3 id="map-manual"><a href="map/">Map Manual</a><a class="headerlink" href="#map-manual" title="Permanent link">&para;</a></h3>
<h2 id="production-deployment">Production Deployment<a class="headerlink" href="#production-deployment" title="Permanent link">&para;</a></h2>
<h3 id="deploy-with-cloudflare-tunnels">Deploy with Cloudflare Tunnels<a class="headerlink" href="#deploy-with-cloudflare-tunnels" title="Permanent link">&para;</a></h3>
<p>For secure public access, use the production deployment script:</p>
@ -1969,7 +2023,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../cost-comparison/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Cost Comparison">
<a href="../phil/cost-comparison/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Cost Comparison">
<div class="md-footer__button md-icon">
<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>

File diff suppressed because it is too large Load Diff

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -595,6 +597,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -972,7 +997,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" checked>
<div class="md-nav__link md-nav__container">
@ -989,14 +1014,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -595,6 +597,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -972,7 +997,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" checked>
<div class="md-nav__link md-nav__container">
@ -989,14 +1014,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link md-nav__link--active" for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link md-nav__link--active" for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -666,6 +666,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -921,8 +923,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<!-- Main Hero Block -->
<div class="hero-main grid-card">
<div class="meta-badge">🤯 This Site Runs On Changemaker Lite</div>
<h1>The Only Free and Open Source Political Campaign Stack</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled and your supports data sold to the highest bidder. Run your entire political campaign on ~$200 hardware and
<h1>The Only Free and Open Source Political Campaign Platform</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled. Your supporters data deserves better. Run your entire political campaign on ~$200 hardware and
with fewer corporate dependencies every day.</p>
<div class="hero-ctas">
@ -941,7 +943,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<div class="problem-item">👁️ Surveillance: Always on</div>
<div class="problem-item">🔒 Vendor lock-in: Trapped forever</div>
<div class="problem-item">📉 Data ownership: Not yours</div>
<div class="promlem-itme">😠 Implicitly Supporting Evil Corporations</div>
<div class="problem-item">😠 Implicitly Supporting Evil Corporations</div>
</div>
</div>

View File

@ -17,8 +17,8 @@
<!-- Main Hero Block -->
<div class="hero-main grid-card">
<div class="meta-badge">🤯 This Site Runs On Changemaker Lite</div>
<h1>The Only Free and Open Source Political Campaign Stack</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled and your supports data sold to the highest bidder. Run your entire political campaign on ~$200 hardware and
<h1>The Only Free and Open Source Political Campaign Platform</h1>
<p>Stop paying thousands of dollars a month to corporate platforms just to be surveilled. Your supporters data deserves better. Run your entire political campaign on ~$200 hardware and
with fewer corporate dependencies every day.</p>
<div class="hero-ctas">
@ -37,7 +37,7 @@
<div class="problem-item">👁️ Surveillance: Always on</div>
<div class="problem-item">🔒 Vendor lock-in: Trapped forever</div>
<div class="problem-item">📉 Data ownership: Not yours</div>
<div class="promlem-itme">😠 Implicitly Supporting Evil Corporations</div>
<div class="problem-item">😠 Implicitly Supporting Evil Corporations</div>
</div>
</div>

View File

@ -12,16 +12,16 @@
<meta name="author" content="Bunker Operations">
<link rel="canonical" href="https://cmlite.org/cost-comparison/">
<link rel="canonical" href="https://cmlite.org/phil/cost-comparison/">
<link rel="prev" href="../phil/">
<link rel="prev" href="../">
<link rel="next" href="../build/">
<link rel="next" href="../../build/">
<link rel="icon" href="../assets/images/favicon.png">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
@ -30,10 +30,10 @@
<link rel="stylesheet" href="../assets/stylesheets/main.342714a4.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
@ -52,11 +52,11 @@
<link rel="stylesheet" href="../stylesheets/extra.css">
<link rel="stylesheet" href="../../stylesheets/extra.css">
<link rel="stylesheet" href="../stylesheets/home.css">
<link rel="stylesheet" href="../../stylesheets/home.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>
<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>
@ -69,7 +69,7 @@
<meta property="og:description" content="Build Power. Not Rent It. Own your digital infrastructure." >
<meta property="og:image" content="https://cmlite.org/assets/images/social/cost-comparison.png" >
<meta property="og:image" content="https://cmlite.org/assets/images/social/phil/cost-comparison.png" >
<meta property="og:image:type" content="image/png" >
@ -77,7 +77,7 @@
<meta property="og:image:height" content="630" >
<meta property="og:url" content="https://cmlite.org/cost-comparison/" >
<meta property="og:url" content="https://cmlite.org/phil/cost-comparison/" >
<meta name="twitter:card" content="summary_large_image" >
@ -85,7 +85,7 @@
<meta name="twitter:description" content="Build Power. Not Rent It. Own your digital infrastructure." >
<meta name="twitter:image" content="https://cmlite.org/assets/images/social/cost-comparison.png" >
<meta name="twitter:image" content="https://cmlite.org/assets/images/social/phil/cost-comparison.png" >
@ -145,7 +145,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="Changemaker Lite" class="md-header__button md-logo" aria-label="Changemaker Lite" data-md-component="logo">
<a href="../.." title="Changemaker Lite" class="md-header__button md-logo" aria-label="Changemaker Lite" 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>
@ -277,7 +277,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
<a href="../.." class="md-tabs__link">
@ -300,7 +300,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-tabs__item md-tabs__item--active">
<a href="../phil/" class="md-tabs__link">
<a href="../" class="md-tabs__link">
@ -322,7 +322,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-tabs__item">
<a href="../build/" class="md-tabs__link">
<a href="../../build/" class="md-tabs__link">
@ -344,7 +344,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-tabs__item">
<a href="../blog/" class="md-tabs__link">
<a href="../../blog/" class="md-tabs__link">
@ -386,7 +386,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<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" class="md-nav__button md-logo" aria-label="Changemaker Lite" data-md-component="logo">
<a href="../.." title="Changemaker Lite" class="md-nav__button md-logo" aria-label="Changemaker Lite" 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>
@ -416,7 +416,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<a href="../.." class="md-nav__link">
@ -478,7 +478,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<div class="md-nav__link md-nav__container">
<a href="../phil/" class="md-nav__link ">
<a href="../" class="md-nav__link ">
@ -1000,6 +1000,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -1023,7 +1025,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<a href="../build/" class="md-nav__link">
<a href="../../build/" class="md-nav__link">
@ -1079,7 +1081,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<a href="../blog/" class="md-nav__link">
<a href="../../blog/" class="md-nav__link">
@ -1911,7 +1913,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<h3 id="roi-calculation">ROI Calculation<a class="headerlink" href="#roi-calculation" title="Permanent link">&para;</a></h3>
<p>Most campaigns recover their entire first-year investment in <strong>60-90 days</strong> through subscription savings alone.</p>
<hr />
<p><em>Ready to stop feeding your budget to corporate surveillance? <a href="../build/">Get started with Changemaker Lite today</a> and take control of your digital infrastructure.</em></p>
<p><em>Ready to stop feeding your budget to corporate surveillance? <a href="../../build/">Get started with Changemaker Lite today</a> and take control of your digital infrastructure.</em></p>
@ -1950,7 +1952,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../phil/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Philosophy: Your Secrets, Your Power, Your Movement">
<a href="../" class="md-footer__link md-footer__link--prev" aria-label="Previous: Philosophy: Your Secrets, Your Power, Your Movement">
<div class="md-footer__button md-icon">
<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>
@ -1967,7 +1969,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<a href="../build/" class="md-footer__link md-footer__link--next" aria-label="Next: Getting Started with Digital Liberation">
<a href="../../build/" class="md-footer__link md-footer__link--next" aria-label="Next: Getting Started with Digital Liberation">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
@ -2031,16 +2033,16 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.expand", "navigation.footer", "navigation.indexes", "navigation.instant", "navigation.instant.prefetch", "navigation.instant.progress", "navigation.path", "navigation.prune", "navigation.sections", "navigation.tabs", "navigation.tabs.sticky", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "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 id="__config" type="application/json">{"base": "../..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.expand", "navigation.footer", "navigation.indexes", "navigation.instant", "navigation.instant.prefetch", "navigation.instant.progress", "navigation.path", "navigation.prune", "navigation.sections", "navigation.tabs", "navigation.tabs.sticky", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "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>
<script src="../../assets/javascripts/bundle.13a4f30d.min.js"></script>
<script src="../javascripts/home.js"></script>
<script src="../../javascripts/home.js"></script>
<script src="../javascripts/github-widget.js"></script>
<script src="../../javascripts/github-widget.js"></script>
<script src="../javascripts/gitea-widget.js"></script>
<script src="../../javascripts/gitea-widget.js"></script>
</body>

View File

@ -18,7 +18,7 @@
<link rel="prev" href="..">
<link rel="next" href="../cost-comparison/">
<link rel="next" href="cost-comparison/">
<link rel="icon" href="../assets/images/favicon.png">
@ -605,7 +605,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../cost-comparison/" class="md-nav__link">
<a href="cost-comparison/" class="md-nav__link">
@ -644,6 +644,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -846,7 +848,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="#liberation-first" class="md-nav__link">
<span class="md-ellipsis">
🏳️‍⚧️ 🇵🇸 Liberation First
🏳️‍⚧️ 🏳️‍🌈 🇵🇸 Liberation First
</span>
</a>
@ -1196,8 +1198,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<h3 id="who-we-are">Who We Are<a class="headerlink" href="#who-we-are" title="Permanent link">&para;</a></h3>
<p><strong>BNKops</strong> is a cooperative based in amiskwaciy-wâskahikan (Edmonton, Alberta) on Treaty 6 territory. We're not a corporation—we're a collective of skilled organizers, developers, and community builders who believe technology should serve liberation, not oppression.</p>
<h3 id="our-principles">Our Principles<a class="headerlink" href="#our-principles" title="Permanent link">&para;</a></h3>
<h4 id="liberation-first">🏳️‍⚧️ 🇵🇸 Liberation First<a class="headerlink" href="#liberation-first" title="Permanent link">&para;</a></h4>
<p>Technology that centers the most marginalized voices and fights for collective liberation. Trans rights are human rights, and our tools reflect this commitment.</p>
<h4 id="liberation-first">🏳️‍⚧️ 🏳️‍🌈 🇵🇸 Liberation First<a class="headerlink" href="#liberation-first" title="Permanent link">&para;</a></h4>
<p>Technology that centers the most marginalized voices and fights for collective liberation. We believe strongly that the medium is the message; if you the use the medium of fascists, what does that say about your movement? </p>
<h4 id="community-over-profit">🤝 Community Over Profit<a class="headerlink" href="#community-over-profit" title="Permanent link">&para;</a></h4>
<p>We operate as a cooperative because we believe in shared ownership and democratic decision-making. No venture capitalists, no shareholders, no extraction.</p>
<h4 id="data-sovereignty">⚡ Data Sovereignty<a class="headerlink" href="#data-sovereignty" title="Permanent link">&para;</a></h4>
@ -1353,7 +1355,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<a href="../cost-comparison/" class="md-footer__link md-footer__link--next" aria-label="Next: Cost Comparison">
<a href="cost-comparison/" class="md-footer__link md-footer__link--next" aria-label="Next: Cost Comparison">
<div class="md-footer__title">
<span class="md-footer__direction">
Next

File diff suppressed because one or more lines are too long

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1103,7 +1128,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1120,14 +1145,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1094,7 +1119,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1111,14 +1136,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1271,7 +1296,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1288,14 +1313,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -15,7 +15,7 @@
<link rel="canonical" href="https://cmlite.org/services/">
<link rel="prev" href="../build/build-server/">
<link rel="prev" href="../build/map/">
<link rel="next" href="homepage/">
@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link md-nav__link--active" for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link md-nav__link--active" for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -972,7 +997,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -989,14 +1014,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>
@ -1580,7 +1605,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../build/build-server/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Build Server">
<a href="../build/map/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Build Map">
<div class="md-footer__button md-icon">
<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>
@ -1590,7 +1615,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
Previous
</span>
<div class="md-ellipsis">
Build Server
Build Map
</div>
</div>
</a>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1112,7 +1137,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1129,14 +1154,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1136,7 +1161,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1153,14 +1178,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1085,7 +1110,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1102,14 +1127,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1169,7 +1194,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1186,14 +1211,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1247,7 +1272,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1264,14 +1289,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1238,7 +1263,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1255,14 +1280,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1178,7 +1203,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1195,14 +1220,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -513,6 +513,8 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
@ -593,6 +595,29 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<li class="md-nav__item">
<a href="../../build/map/" class="md-nav__link">
<span class="md-ellipsis">
Build Map
</span>
</a>
</li>
@ -644,7 +669,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
<div class="md-nav__link md-nav__container">
@ -661,14 +686,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="">
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Services
</label>
@ -1163,7 +1188,7 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
@ -1180,14 +1205,14 @@ Changemaker Archive. <a href="https://docs.bnkops.com">Learn more</a>
</a>
<label class="md-nav__link " for="__nav_3_4" id="__nav_3_4_label" tabindex="">
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>

View File

@ -2,82 +2,86 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://cmlite.org/</loc>
<lastmod>2025-06-30</lastmod>
</url>
<url>
<loc>https://cmlite.org/cost-comparison/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/blog/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/build-server/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/map/</loc>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/cloudflare-config/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/phil/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/phil/cost-comparison/</loc>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/code-server/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/gitea/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/homepage/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/listmonk/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/map/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/mini-qr/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/mkdocs/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/n8n/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/nocodb/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/postgresql/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/static-server/</loc>
<lastmod>2025-06-30</lastmod>
<lastmod>2025-07-01</lastmod>
</url>
</urlset>

Binary file not shown.