From 0ed0c4b38dd4386085245131b01a2097e7a8a38e Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 5 Sep 2025 12:23:46 -0600 Subject: [PATCH] Updates to documentation, fixes for edit buttons in map shifts, and CORS for local dev and access --- README.md | 19 +- config.sh | 4 +- map/app/controllers/shiftsController.js | 6 +- map/app/public/css/admin/cuts-shifts.css | 20 ++ map/app/public/js/admin.js | 158 ++++++++-- map/app/server.js | 4 +- mkdocs/docs/assets/listmonk.png | Bin 0 -> 92732 bytes .../repo-data/admin-changemaker.lite.json | 6 +- mkdocs/docs/build/index.md | 37 ++- mkdocs/docs/build/map.md | 96 +++++- mkdocs/docs/config/cloudflare-config.md | 1 + mkdocs/docs/overrides/lander.html | 29 +- mkdocs/mkdocs.yml | 2 +- mkdocs/site/404.html | 14 +- mkdocs/site/adv/ansible/index.html | 30 +- mkdocs/site/adv/index.html | 30 +- mkdocs/site/adv/vscode-ssh/index.html | 30 +- ...56ea9cef.min.js => bundle.50899def.min.js} | 4 +- ....min.js.map => bundle.50899def.min.js.map} | 4 +- mkdocs/site/assets/listmonk.png | Bin 0 -> 92732 bytes .../repo-data/admin-changemaker.lite.json | 6 +- ...342714a4.min.css => main.7e37652d.min.css} | 2 +- ....min.css.map => main.7e37652d.min.css.map} | 2 +- mkdocs/site/blog/2025/07/03/blog-1/index.html | 30 +- mkdocs/site/blog/2025/07/10/2/index.html | 30 +- mkdocs/site/blog/2025/08/01/3/index.html | 30 +- mkdocs/site/blog/archive/2025/index.html | 14 +- mkdocs/site/blog/index.html | 14 +- mkdocs/site/build/index.html | 295 +++++++++++------- mkdocs/site/build/map/index.html | 144 +++++++-- mkdocs/site/build/server/index.html | 30 +- mkdocs/site/build/site/index.html | 30 +- .../site/config/cloudflare-config/index.html | 31 +- mkdocs/site/config/coder/index.html | 30 +- mkdocs/site/config/index.html | 30 +- mkdocs/site/config/map/index.html | 30 +- mkdocs/site/config/mkdocs/index.html | 30 +- mkdocs/site/how to/canvass/index.html | 30 +- mkdocs/site/index.html | 27 +- mkdocs/site/manual/index.html | 30 +- mkdocs/site/manual/map/index.html | 30 +- mkdocs/site/overrides/lander.html | 27 +- mkdocs/site/phil/cost-comparison/index.html | 30 +- mkdocs/site/phil/index.html | 30 +- mkdocs/site/search/search_index.json | 2 +- mkdocs/site/services/code-server/index.html | 30 +- mkdocs/site/services/gitea/index.html | 30 +- mkdocs/site/services/homepage/index.html | 30 +- mkdocs/site/services/index.html | 30 +- mkdocs/site/services/listmonk/index.html | 30 +- mkdocs/site/services/map/index.html | 30 +- mkdocs/site/services/mini-qr/index.html | 30 +- mkdocs/site/services/mkdocs/index.html | 30 +- mkdocs/site/services/n8n/index.html | 30 +- mkdocs/site/services/nocodb/index.html | 30 +- mkdocs/site/services/postgresql/index.html | 30 +- mkdocs/site/services/static-server/index.html | 30 +- mkdocs/site/sitemap.xml | 72 ++--- mkdocs/site/sitemap.xml.gz | Bin 412 -> 413 bytes mkdocs/site/test/index.html | 30 +- 60 files changed, 1432 insertions(+), 508 deletions(-) create mode 100644 mkdocs/docs/assets/listmonk.png rename mkdocs/site/assets/javascripts/{bundle.56ea9cef.min.js => bundle.50899def.min.js} (86%) rename mkdocs/site/assets/javascripts/{bundle.56ea9cef.min.js.map => bundle.50899def.min.js.map} (90%) create mode 100644 mkdocs/site/assets/listmonk.png rename mkdocs/site/assets/stylesheets/{main.342714a4.min.css => main.7e37652d.min.css} (60%) rename mkdocs/site/assets/stylesheets/{main.342714a4.min.css.map => main.7e37652d.min.css.map} (99%) diff --git a/README.md b/README.md index 80df7dd..93278d9 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,21 @@ cd changemaker.lite docker compose up -d ``` -## Map & Production +## Map Instructions on how to build the map are available in the map directory. Instructions on how to build for production are available in the mkdocs/docs/build directory or in the site preview. +### Quick Start for Map + +Update the .env file in the map directory with your NocoDB URLs, and then run: + +```bash +cd map +docker compose up -d +``` + ## Service Access After starting, access services at: @@ -49,6 +58,14 @@ After starting, access services at: - **NocoDB**: http://localhost:8090 - **Map Viewer**: http://localhost:3000 +## Production Deployment + +If you are deploying to production, using Cloudflare, you can use the included 'start-production.sh' script to set up a secure deployment with HTTPS. Ensure your domain and cloudflare settings are correctly configured in the root .env before running. More information on the required API tokens and settings can be found in the mkdocs/docs/build directory or at cmlite.org. + +```bash +./start-production.sh +``` + ## Documentation Complete documentation is available in the MkDocs site, including: diff --git a/config.sh b/config.sh index 655aef7..cef59a5 100755 --- a/config.sh +++ b/config.sh @@ -748,7 +748,7 @@ NODE_ENV=production ALLOWED_ORIGINS=https://map.$new_domain,http://localhost:3000 # Add allowed origin -ALLOWED_ORIGINS=https://map.cmlite.org,http://localhost:3000 +ALLOWED_ORIGINS=https://map.$new_domain,http://localhost:3000 # SMTP Configuration SMTP_HOST=smtp.insert.here @@ -766,7 +766,7 @@ APP_NAME="$new_domain Map" LISTMONK_API_URL=http://listmonk_app:9000/api LISTMONK_PASSWORD=changeme LISTMONK_SYNC_ENABLED=true -LISTMONK_INITIAL_SYNC=true # Set to true only for first run to sync existing data +LISTMONK_INITIAL_SYNC=false # Set to true to sync existing data EOL echo "✅ Created new map .env file at $MAP_ENV_FILE" diff --git a/map/app/controllers/shiftsController.js b/map/app/controllers/shiftsController.js index bec4fb6..0cd5564 100644 --- a/map/app/controllers/shiftsController.js +++ b/map/app/controllers/shiftsController.js @@ -287,7 +287,7 @@ class ShiftsController { // Admin: Create shift async create(req, res) { try { - const { title, description, date, startTime, endTime, location, maxVolunteers } = req.body; + const { title, description, date, startTime, endTime, location, maxVolunteers, isPublic } = req.body; if (!title || !date || !startTime || !endTime || !location || !maxVolunteers) { return res.status(400).json({ @@ -306,6 +306,7 @@ class ShiftsController { 'Max Volunteers': parseInt(maxVolunteers), 'Current Volunteers': 0, Status: 'Open', + 'Is Public': isPublic !== false, // Default to true if not specified 'Created By': req.session.userEmail, 'Created At': new Date().toISOString(), 'Updated At': new Date().toISOString() @@ -340,7 +341,8 @@ class ShiftsController { endTime: 'End Time', location: 'Location', maxVolunteers: 'Max Volunteers', - status: 'Status' + status: 'Status', + isPublic: 'Is Public' }; for (const [key, field] of Object.entries(fieldMap)) { diff --git a/map/app/public/css/admin/cuts-shifts.css b/map/app/public/css/admin/cuts-shifts.css index 43a8d6f..27be13e 100644 --- a/map/app/public/css/admin/cuts-shifts.css +++ b/map/app/public/css/admin/cuts-shifts.css @@ -99,6 +99,26 @@ margin: 0 0 10px 0; } +/* Editing State for Shifts */ +.shift-admin-item.editing { + border: 2px solid #a02c8d; + background-color: #f9f0f8; +} + +.shift-admin-item.editing::before { + content: "EDITING"; + position: absolute; + top: 5px; + right: 5px; + background: #a02c8d; + color: white; + padding: 2px 8px; + font-size: 11px; + border-radius: 3px; + font-weight: bold; + z-index: 1; +} + .shift-admin-item p { margin: 5px 0; color: var(--secondary-color); diff --git a/map/app/public/js/admin.js b/map/app/public/js/admin.js index 9b8d562..2d8fa12 100644 --- a/map/app/public/js/admin.js +++ b/map/app/public/js/admin.js @@ -2,6 +2,7 @@ let adminMap = null; let startMarker = null; let storedQRCodes = {}; +let editingShiftId = null; // Utility function to create a local date from YYYY-MM-DD string // This prevents timezone issues when displaying dates @@ -357,7 +358,13 @@ function setupEventListeners() { // Clear shift form button const clearShiftBtn = document.getElementById('clear-shift-form'); if (clearShiftBtn) { - clearShiftBtn.addEventListener('click', clearShiftForm); + clearShiftBtn.addEventListener('click', function() { + const wasEditing = editingShiftId !== null; + clearShiftForm(); + if (wasEditing) { + showStatus('Edit cancelled', 'info'); + } + }); } // User form submission @@ -1267,47 +1274,133 @@ async function deleteShift(shiftId) { } // Update editShift function (remove window. prefix) -function editShift(shiftId) { - showStatus('Edit functionality coming soon', 'info'); +async function editShift(shiftId) { + try { + // Find the shift in the current data + const response = await fetch('/api/shifts/admin'); + const data = await response.json(); + + if (!data.success) { + showStatus('Failed to load shift data', 'error'); + return; + } + + const shift = data.shifts.find(s => s.ID === parseInt(shiftId)); + if (!shift) { + showStatus('Shift not found', 'error'); + return; + } + + // Set editing mode + editingShiftId = shiftId; + + // Populate the form + document.getElementById('shift-title').value = shift.Title || ''; + document.getElementById('shift-description').value = shift.Description || ''; + document.getElementById('shift-date').value = shift.Date || ''; + document.getElementById('shift-start').value = shift['Start Time'] || ''; + document.getElementById('shift-end').value = shift['End Time'] || ''; + document.getElementById('shift-location').value = shift.Location || ''; + document.getElementById('shift-max-volunteers').value = shift['Max Volunteers'] || ''; + + // Update public checkbox if it exists + const publicCheckbox = document.getElementById('shift-is-public'); + if (publicCheckbox) { + publicCheckbox.checked = shift['Is Public'] !== false; + } + + // Change submit button text + const submitBtn = document.querySelector('#shift-form button[type="submit"]'); + if (submitBtn) { + submitBtn.textContent = 'Update Shift'; + } + + // Remove editing class from any previous item + document.querySelectorAll('.shift-admin-item.editing').forEach(el => { + el.classList.remove('editing'); + }); + + // Add editing class to current item + const shiftElement = document.querySelector(`[data-shift-id="${shiftId}"]`); + if (shiftElement) { + const shiftItem = shiftElement.closest('.shift-admin-item'); + if (shiftItem) { + shiftItem.classList.add('editing'); + } + } + + // Scroll to form + document.getElementById('shift-form').scrollIntoView({ behavior: 'smooth' }); + + showStatus('Editing shift: ' + shift.Title, 'info'); + + } catch (error) { + console.error('Error loading shift for edit:', error); + showStatus('Failed to load shift for editing', 'error'); + } } // Add function to create shift async function createShift(e) { e.preventDefault(); - const formData = { - title: document.getElementById('shift-title').value, - description: document.getElementById('shift-description').value, - date: document.getElementById('shift-date').value, - startTime: document.getElementById('shift-start').value, - endTime: document.getElementById('shift-end').value, - location: document.getElementById('shift-location').value, - maxVolunteers: document.getElementById('shift-max-volunteers').value, - isPublic: document.getElementById('shift-is-public')?.checked !== false + const title = document.getElementById('shift-title').value; + const description = document.getElementById('shift-description').value; + const date = document.getElementById('shift-date').value; + const startTime = document.getElementById('shift-start').value; + const endTime = document.getElementById('shift-end').value; + const location = document.getElementById('shift-location').value; + const maxVolunteers = document.getElementById('shift-max-volunteers').value; + + // Get public checkbox value + const isPublic = document.getElementById('shift-is-public')?.checked ?? true; + + const shiftData = { + title, + description, + date, + startTime, + endTime, + location, + maxVolunteers: parseInt(maxVolunteers), + isPublic }; try { - const response = await fetch('/api/shifts/admin', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(formData) - }); + let response; + if (editingShiftId) { + // Update existing shift + response = await fetch(`/api/shifts/admin/${editingShiftId}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(shiftData) + }); + } else { + // Create new shift + response = await fetch('/api/shifts/admin', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(shiftData) + }); + } const data = await response.json(); if (data.success) { - showStatus('Shift created successfully', 'success'); - document.getElementById('shift-form').reset(); + showStatus(editingShiftId ? 'Shift updated successfully' : 'Shift created successfully', 'success'); + clearShiftForm(); await loadAdminShifts(); - console.log('Refreshed shifts list after creating new shift'); + console.log('Refreshed shifts list after saving shift'); } else { - showStatus(data.error || 'Failed to create shift', 'error'); + showStatus(data.error || 'Failed to save shift', 'error'); } } catch (error) { - console.error('Error creating shift:', error); - showStatus('Failed to create shift', 'error'); + console.error('Error saving shift:', error); + showStatus('Failed to save shift', 'error'); } } @@ -1315,6 +1408,21 @@ function clearShiftForm() { const form = document.getElementById('shift-form'); if (form) { form.reset(); + + // Reset editing state + editingShiftId = null; + + // Reset submit button text + const submitBtn = document.querySelector('#shift-form button[type="submit"]'); + if (submitBtn) { + submitBtn.textContent = 'Create Shift'; + } + + // Remove editing class from any shift items + document.querySelectorAll('.shift-admin-item.editing').forEach(el => { + el.classList.remove('editing'); + }); + showStatus('Form cleared', 'info'); } } diff --git a/map/app/server.js b/map/app/server.js index 53f17f0..6962cdf 100644 --- a/map/app/server.js +++ b/map/app/server.js @@ -118,7 +118,9 @@ app.use(cors({ `https://${config.domain}`, `https://map.${config.domain}`, config.mkdocs.url, // Use configured MkDocs URL instead of hardcoded subdomain - `https://admin.${config.domain}` + `https://admin.${config.domain}`, + `http://localhost:${config.port}`, // Allow localhost with configured port + `http://localhost:3000` // Allow default port 3000 as well ]; if (allowedOrigins.includes(origin)) { diff --git a/mkdocs/docs/assets/listmonk.png b/mkdocs/docs/assets/listmonk.png new file mode 100644 index 0000000000000000000000000000000000000000..014f91265c8e7cb07385e0167748d64b48a3ea10 GIT binary patch literal 92732 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 B1`x4Wtvxths>1`NL6vcS%i>0`t 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 literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json index 8a18e54..b9051f5 100644 --- a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json +++ b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json @@ -6,11 +6,11 @@ "language": "HTML", "stars_count": 0, "forks_count": 0, - "open_issues_count": 8, - "updated_at": "2025-08-01T15:14:12-06:00", + "open_issues_count": 19, + "updated_at": "2025-09-02T21:31:48-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-08-01T15:14:12-06:00" + "last_build_update": "2025-09-02T21:31:48-06:00" } \ No newline at end of file diff --git a/mkdocs/docs/build/index.md b/mkdocs/docs/build/index.md index a77094b..145cdb2 100644 --- a/mkdocs/docs/build/index.md +++ b/mkdocs/docs/build/index.md @@ -2,13 +2,17 @@ Welcome to Changemaker-Lite! You're about to reclaim your digital sovereignty and stop feeding your secrets to corporations. This guide will help you set up your own political infrastructure that you actually own and control. -This documentation is broken into a few sections: +This documentation is broken into a few sections, which you can see in the navigation bar to the left: - **Build:** Instructions on how to build the cm-lite on your own hardware - **Services:** Overview of all the services that are installed when you install cm-lite - **Configuration:** Information on how to configure all the services that you install in cm-lite - **Manuals:** Manuals on how to use the applications inside cm-lite (with videos!) +Of course, everything is also searachable, so if you want to find something specific, just use the search bar at the top right. + +If you come across anything that is unclear, please open an issue in the [Git Repository](https://gitea.bnkops.com/admin/changemaker.lite), reach out to us at [admin@thebunkerops.ca](mailto:admin@thebunkerops.ca), or edit it yourself by clicking the pencil icon at the top right of each page. + ## Quick Start ### Build Changemaker-Lite @@ -20,7 +24,7 @@ cd changemaker.lite ``` !!! warning "Cloudflare Credentials" - The config.sh script will ask you for your Cloudflare credentials to get started. You can find more information on how to find this in the [Cloudlflare Configuration](../config/cloudflare-config.md) + The config.sh script will ask you for your optional Cloudflare credentials to get started. You can find more information on how to find this in the [Cloudlflare Configuration](../config/cloudflare-config.md) ``` @@ -48,6 +52,28 @@ For secure public access, use the production deployment script: ./start-production.sh ``` +### 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. + +Instructions on how to build the map are available in the [map manual](../build/map.md) in the build directory. + +#### Quick Start for Map +Get your NocoDB API token and URL, update the .env file in the map directory, and then run: + +``` +cd map +chmod +x build-nocodb.sh # builds the nocodb tables +./build-nocodb.sh +``` +Copy the urls of the newly created nocodb views and update the .env file in the map directory with them, and then run: + +``` +cd map +docker compose up -d +``` + +You Map instance will be available at [http://localhost:3000](http://localhost:3000) or on the domain you set up during production deployment. ## Why Changemaker Lite? @@ -78,8 +104,8 @@ Before we dive into the technical setup, let's be clear about what you're doing - **Ubuntu 24.04 LTS (Noble Numbat)** - Recommended and tested -!!! note "Getting Started on Ubunut" - Want some help getting started with a baseline buildout for a Ubunut server? You can use our [BNKops Server Build Script](./server.md) +!!! note "Getting Started on Ubuntu" + Want some help getting started with a baseline buildout for a Ubuntu server? You can use our [BNKops Server Build Script](./server.md) - Other Linux distributions with systemd support - WSL2 on Windows (limited functionality) @@ -100,8 +126,7 @@ Before we dive into the technical setup, let's be clear about what you're doing ### Software Prerequisites -!!! tip "Getting Started on Docker" - Want some help getting started with a baseline buildout for a Ubunutu server? You can use our [BNKops Server Build Script](./server.md) to roll out a configured server in about 20 mins! +Ensure the following software is installed on your system. The [BNKops Server Build Script](./server.md) can help set these up if you're on Ubuntu. 1. **Docker Engine** (24.0+) diff --git a/mkdocs/docs/build/map.md b/mkdocs/docs/build/map.md index 525fb78..8db405f 100644 --- a/mkdocs/docs/build/map.md +++ b/mkdocs/docs/build/map.md @@ -34,28 +34,80 @@ cd map Update your `.env` file with your NocoDB details, specifically the instance and api token: ```env -# NocoDB API Configuration -NOCODB_API_URL=https://your-nocodb-instance.com/api/v1 -NOCODB_API_TOKEN=your-api-token-here +NOCODB_API_URL=[change me] +NOCODB_API_TOKEN=[change me] -# These will be populated after running build-nocodb.sh -NOCODB_VIEW_URL= -NOCODB_LOGIN_SHEET= -NOCODB_SETTINGS_SHEET= +# NocoDB View URL is the URL to your NocoDB view where the map data is stored. +NOCODB_VIEW_URL=[change me] + +# NOCODB_LOGIN_SHEET is the URL to your NocoDB login sheet. +NOCODB_LOGIN_SHEET=[change me] + +# NOCODB_SETTINGS_SHEET is the URL to your NocoDB settings sheet. +NOCODB_SETTINGS_SHEET=[change me] + +# NOCODB_SHIFTS_SHEET is the URL to your shifts sheet. +NOCODB_SHIFTS_SHEET=[change me] + +# NOCODB_SHIFT_SIGNUPS_SHEET is the URL to your NocoDB shift signups sheet where users can add their own shifts. +NOCODB_SHIFT_SIGNUPS_SHEET=[change me] + +# NOCODB_CUTS_SHEET is the URL to your NocoDB Cuts sheet. +NOCODB_CUTS_SHEET=[change me] + +DOMAIN=[change me] + +# MkDocs Integration +MKDOCS_URL=[change me] +MKDOCS_SEARCH_URL=[change me] +MKDOCS_SITE_SERVER_PORT=4002 # Server Configuration PORT=3000 NODE_ENV=production -SESSION_SECRET=your-secure-random-string -# Map Defaults (Edmonton, AB) +# Session Secret (IMPORTANT: Generate a secure random string for production) +SESSION_SECRET=[change me] + +# Map Defaults (Edmonton, Alberta, Canada) DEFAULT_LAT=53.5461 DEFAULT_LNG=-113.4938 DEFAULT_ZOOM=11 -# Production Settings -COOKIE_DOMAIN=.yourdomain.com -ALLOWED_ORIGINS=https://map.yourdomain.com,http://localhost:3000 +# 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=[change me] + +# Update NODE_ENV to production for HTTPS +NODE_ENV=production + +# Add allowed origin +ALLOWED_ORIGINS=[change me] + +# SMTP Configuration +SMTP_HOST=[change me] +SMTP_PORT=587 +SMTP_SECURE=false +SMTP_USER=[change me] +SMTP_PASS=[change me] +EMAIL_FROM_NAME="[change me]" +EMAIL_FROM_ADDRESS=[change me] + +# App Configuration +APP_NAME="[change me]" + +# Listmonk Configuration +LISTMONK_API_URL=[change me] +LISTMONK_USERNAME=[change me] +LISTMONK_PASSWORD=[change me] +LISTMONK_SYNC_ENABLED=true +LISTMONK_INITIAL_SYNC=false # Set to true only for first run to sync existing data ``` ### 3. Auto-Create Database Structure @@ -86,9 +138,23 @@ After the script completes: Edit your `.env` file and add the table URLs: ```env -NOCODB_VIEW_URL=https://your-nocodb.com/dashboard/#/nc/project-id/locations-table-id -NOCODB_LOGIN_SHEET=https://your-nocodb.com/dashboard/#/nc/project-id/login-table-id -NOCODB_SETTINGS_SHEET=https://your-nocodb.com/dashboard/#/nc/project-id/settings-table-id +# NocoDB View URL is the URL to your NocoDB view where the map data is stored. +NOCODB_VIEW_URL=[change me] + +# NOCODB_LOGIN_SHEET is the URL to your NocoDB login sheet. +NOCODB_LOGIN_SHEET=[change me] + +# NOCODB_SETTINGS_SHEET is the URL to your NocoDB settings sheet. +NOCODB_SETTINGS_SHEET=[change me] + +# NOCODB_SHIFTS_SHEET is the URL to your shifts sheet. +NOCODB_SHIFTS_SHEET=[change me] + +# NOCODB_SHIFT_SIGNUPS_SHEET is the URL to your NocoDB shift signups sheet where users can add their own shifts. +NOCODB_SHIFT_SIGNUPS_SHEET=[change me] + +# NOCODB_CUTS_SHEET is the URL to your NocoDB Cuts sheet. +NOCODB_CUTS_SHEET=[change me] ``` ### 6. Build and Deploy diff --git a/mkdocs/docs/config/cloudflare-config.md b/mkdocs/docs/config/cloudflare-config.md index d375ae8..a2a6715 100644 --- a/mkdocs/docs/config/cloudflare-config.md +++ b/mkdocs/docs/config/cloudflare-config.md @@ -12,6 +12,7 @@ The `config.sh` and `start-production.sh` scripts require the following Cloudfla - **Required Permissions**: - `Zone.DNS` (Read/Write) - `Account.Cloudflare Tunnel` (Read/Write) + - `Access` (Read/Write) - **How to Obtain**: - Log in to your Cloudflare account. - Go to **My Profile** > **API Tokens** > **Create Token**. diff --git a/mkdocs/docs/overrides/lander.html b/mkdocs/docs/overrides/lander.html index 94b9b36..14d2bd2 100644 --- a/mkdocs/docs/overrides/lander.html +++ b/mkdocs/docs/overrides/lander.html @@ -1282,11 +1282,11 @@
🚀 Hardware Up This Site Served by Changemaker - Lite
-

Power Tools for Modern Campaign Documentation

+

Power Tools for Modern Campaigns

Give your supporters instant answers at the door, on the phone, or in person. Turn your campaign website & knowledge into a searchable, - mobile-first documentation system that actually works in the field or at the party. No corporate middlemen; your data, your servers, your platform. + mobile-first documentation system that actually works in the field or at the party. Add unlimited users, start as many campaigns as you can, and message all your supporters indefinitely with no extra costs. No corporate middlemen; your data, your servers, your platform.

@@ -1383,14 +1383,31 @@
-

Documentation That Works at the Door

-

Everything your team needs, instantly searchable, always accessible

+

Documentation That Works

+

Everything your team needs, instantly searchable, always accessible, and easy to communicate

+
+ +
+
+

Communicate on Scale

+

Full email and messenger campaign systems with unlimited users

+
    +
  • Drop in replacement for mailchimp, sendgrid, etc.
  • +
  • Track emails, clicks, and user actions
  • +
  • Unlimited contact, asset, and file storage
  • +
  • Compatible with all major email providers
  • +
  • Fully extensible with API's & webhooks
  • +
+
+
+ Phone showing mobile-optimized interface with large touch targets, clear typography, and instant search results +

Mobile-First Everything

-

Built for phones first, because that's what your canvassers carry. Every feature, every interface, optimized for one-handed use in the field.

+

Built for phones first, because that's what your supporters carry. Every feature, every interface, optimized for one-handed use in the field.

  • Touch-optimized interfaces
  • Offline-capable after first load
  • @@ -1579,7 +1596,7 @@
    Listmonk Email Platform
-

Professional email campaigns without the professional price tag.

+

Professional email & messenger campaigns without the professional price tag.