1 line
109 KiB
JSON
1 line
109 KiB
JSON
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"quick-commands/","title":"Quick Commands","text":""},{"location":"quick-commands/#build-site","title":"Build Site","text":"<pre><code># navigate to mkdocs directory \nmkdocs build\n</code></pre>"},{"location":"quick-commands/#ollama","title":"Ollama","text":"<p>Pull a model into the ollama environment: </p> <pre><code># Replace action and model with your own...\ndocker exec -it ollama-changemaker ollama [action] [model]\n</code></pre>"},{"location":"readme/","title":"Changemaker V5","text":"<p>Changemaker V5 is a battle-tested, lightweight, self-hosted productivity suite which empowers you to deploy secure, locally-built websites, blogs, newsletters, & forms \u2013 from personal projects to full-fledged campaigns \u2013 granting you complete control, inherent security, and true freedom of speech. </p> <p>It is a project undertaken by The Bunker Operations, headquarted in Edmonton, Alberta, Canada, as to provide our community a digital campaign alternative to mainstream American systems. </p> <p></p>"},{"location":"readme/#contents","title":"Contents","text":"<ul> <li>Prerequisites</li> <li>Quick Start</li> <li>Detailed Installation</li> <li>1. Install Docker and Docker Compose</li> <li>2. Clone the Repository</li> <li>3. Configure Your Environment</li> <li>4. Start the Services</li> <li>5. Run Post-Installation Tasks</li> <li>Local Service Ports</li> <li>Cloudflare Tunnel Setup</li> <li>Install Cloudflared on Ubuntu 24.04</li> <li>Configure Your Cloudflare Tunnel</li> <li>Create a Cloudflare System Service</li> <li>Add CNAME Records</li> <li>Website Build and Deployment Workflow</li> <li>Accessing Your Services</li> <li>Troubleshooting</li> </ul>"},{"location":"readme/#development-pathway","title":"Development Pathway","text":"<p>Changemaker's identified wants for development: </p> <ul> <li>Internal integrations for assset management i.e. shared plain file locations </li> <li>Database connections for automation systems i.e. manauls for Nocodb & n8n on connecting services</li> <li>Manual & landing site for the whole system i.e. upgrading bnkops.com </li> <li>Trainings and manuals across the board </li> </ul> <p>Idenitfied Feature Requests: </p> <ul> <li>Event Management: Looking at hi.ewvents</li> <li>Scheduling: Looking at rally</li> <li>Support and user chat: looking at chatwoot</li> <li>Mass community chat: looking at thelounge</li> <li>Team chat and project management: looking at rocket chat \u2714\ufe0f</li> </ul> <p>Bugs:</p> <ul> <li>Readme needs a full flow redo - \u2705 next up </li> <li>Config script needs to be updated for nocodb for a simpler string / set the string - </li> <li>Gitea DNS application access bypass not properly setting - \u2705 bypass needing manual setup / need to explore api more</li> <li>Portainer not serving to http - \ud83e\udd14 portainer to be limited to local access </li> <li>nocodb setup upping odd - \u2705 password needs no special characters</li> <li>ferdium port mismatch - \u2705 was a cloudflare port setting missmatch</li> </ul>"},{"location":"readme/#prerequisites","title":"Prerequisites","text":"<ul> <li>A Linux server (Ubuntu 22.04/24.04 recommended)</li> <li>Docker & Docker Compose</li> <li>Internet connection</li> <li>(Optional) Root or sudo access</li> <li>(Optional) A domain name for remote access</li> <li>(Optional) Cloudflare account for tunnel setup</li> </ul>"},{"location":"readme/#quick-start-for-local-dev","title":"Quick Start for Local Dev","text":"<p>Review all off the applications here</p> <p>If you're familiar with Docker and want to get started quickly:</p> <pre><code># Clone the repository\ngit clone https://gitea.bnkhome.org/bnkops/Changemaker.git\ncd changemaker\n</code></pre> <p>See Setting Up Cloudflare Credentials for how to get cloudflare credentials for config.sh.</p> <pre><code># Use default configuration for local development.\n# To configure for remote deployment with Cloudflare, first make the script executable:\nchmod +x config.sh\n\n# Then run the configuration script. You will need your Cloudflare details.\n./config.sh\n</code></pre> <pre><code># Start all services\ndocker compose up -d\n</code></pre> <p>First time installation can take several miniutes</p> <p>On a 1GB internet connection, instal time is approximately 5 minutes.</p>"},{"location":"readme/#configure-portainer-immediately","title":"\u26a0\ufe0f Configure Portainer Immediately \ud83e\udd8a","text":"<p>Portainer has a timed build process that needs to be completed on successful build. Proceed to configure the service by visiting https://localhost:9444 </p> <p>Gitea has a install process that you should complete immediately after connecting system to dns and domain services. </p>"},{"location":"readme/#on-successful-build-vist-local-homepage","title":"On Successful Build, Vist Local Homepage","text":"<p>The local homepage - http://localhost:3011 is configured with all of the services you can access securely locally. </p> <p>To access services outside of network, configure a VPN, Tailscale, or continue to Cloudflare publishing documentation.</p>"},{"location":"readme/#local-service-ports","title":"Local Service Ports","text":"<p>When running Changemaker locally, you can access the services at the following ports on your server:</p> Service Local Port Local URL Root/Website (Nginx) 4001 http://localhost:4001 Homepage (local) 3011 http://locahost:3011 Homepage 3010 http://localhost:3010 Excalidraw 3333 http://localhost:3333 Listmonk 9000 http://localhost:9000 Monica CRM 8085 http://localhost:8085 MkDocs 4000 http://localhost:4000 Flatnotes 8089 http://localhost:8089 Code Server 8888 http://localhost:8888 Ollama 11435 http://localhost:11435 OpenWebUI 3005 http://localhost:3005 Gitea 3030 http://localhost:3030 Portainer 8005 https://localhost:9444 Mini QR 8081 http://localhost:8081 Ferdium 3009 http://localhost:3009 Answer 9080 http://localhost:9080 NocoDB 8090 http://localhost:8090 n8n 5678 http://localhost:5678 ConvertX 3100 http://localhost:3100 Rocket.Chat 3004 http://localhost:3004"},{"location":"readme/#ubuntu-os-build-outs","title":"Ubuntu OS & Build Outs","text":"<p>You can deploy Changemaker on any OS using Docker however we also provide several full Ubuntu build-outs. These scripts can speed up your deployment immensely and Changemaker is developed on a like system: </p> <ol> <li>build.server - this build-out is a lightweight deployment aimed for dedicated server machines. It is focused on entry level users who would build on a dedicated machine. </li> <li>build.homelab - this build-out is full-some development focused build-out that The Bunker Operations uses for our day-to-day operations. </li> </ol> <p>Configuration and services scripts for futher developing the system can be found at the scripts repo. </p>"},{"location":"readme/#1-install-docker-and-docker-compose","title":"1. Install Docker and Docker Compose","text":"<p>Install Docker and Docker Compose on your system if they're not already installed: </p> <p>Install Docker & Docker Compose</p> <p>Verify that Docker and Docker Compose are installed correctly:</p> <pre><code>docker --version\ndocker compose version\n</code></pre>"},{"location":"readme/#2-clone-the-repository","title":"2. Clone the Repository","text":"<pre><code>git clone https://github.com/your-org/changemaker-v5.git\ncd changemaker-v5\n</code></pre>"},{"location":"readme/#2-configure-your-environment","title":"2. Configure Your Environment","text":""},{"location":"readme/#setting-up-cloudflare-credentials","title":"Setting Up Cloudflare Credentials","text":"<p>To use the configuration script, you'll need to collect several Cloudflare credentials:</p> <p>Required Cloudflare Information</p> <p>You'll need three important pieces of information from your Cloudflare account: - API Token with proper permissions - Zone ID for your domain - Tunnel ID</p>"},{"location":"readme/#1-create-an-api-token","title":"1. Create an API Token","text":"<ol> <li>Go to your Cloudflare Dashboard \u2192 Profile \u2192 API Tokens</li> <li>Click \"Create Token\"</li> <li>Choose one of these options:</li> <li>Use the \"Edit zone DNS\" template</li> <li>Create a custom token with these permissions:<ul> <li>Zone:DNS:Edit</li> <li>Access:Apps:Edit</li> </ul> </li> <li>Restrict the token to only your specific zone/domain</li> <li>Generate and copy the token</li> </ol>"},{"location":"readme/#2-get-your-zone-id","title":"2. Get your Zone ID","text":"<ol> <li>Go to your domain's overview page in the Cloudflare dashboard</li> <li>The Zone ID is displayed on the right sidebar</li> <li>It looks like: <code>023e105f4ecef8ad9ca31a8372d0c353</code></li> </ol>"},{"location":"readme/#3-get-your-tunnel-id","title":"3. Get your Tunnel ID","text":"<ol> <li>If you've already created a tunnel, you can find the ID:</li> <li>Go to Cloudflare Zero Trust dashboard \u2192 Access \u2192 Tunnels</li> <li>Click on your tunnel</li> <li>The Tunnel ID is in the URL: <code>https://dash.teams.cloudflare.com/xxx/network/tunnels/xxxx</code></li> <li>It looks like: <code>6ff42ae2-765d-4adf-8112-31c55c1551ef</code></li> </ol> <p>Keep Your Credentials Secure</p> <p>Store these credentials securely. Never commit them to public repositories or share them in unsecured communications.</p> <p>You have two options:</p> <p>Option A: Use the configuration wizard (recommended)</p> <pre><code># Make the script executable\nchmod +x config.sh\n\n# Run the configuration wizard\n./config.sh\n</code></pre> <p>Option B: Configure manually <pre><code># Edit the .env file with your settings\nnano .env\n</code></pre></p>"},{"location":"readme/#4-start-the-services","title":"4. Start the Services","text":"<pre><code># Pull and start all containers in detached mode\ndocker compose up -d\n</code></pre> <p>Configure Portainer</p> <p>Portainer has a timed build process. Make sure to immediatly configure the service at https://localhost:9444 following successful build. </p> <p>All services can now be accessed through on local machine. If deploying to public, it is recommended to configure portainer and then continue configuration for all other services once tunnel is established. Then use the public links for configuration of services. For online deployment with Cloudflare, continue to next steps. </p>"},{"location":"readme/#4-cloudflare-tunnel-setup","title":"4. Cloudflare Tunnel Setup","text":"<p>For secure remote access to your services, you can set up a Cloudflare Tunnel.</p>"},{"location":"readme/#install-cloudflared-on-ubuntu-2404","title":"Install Cloudflared on Ubuntu 24.04","text":"<p>Cloudflared Installation Guide</p>"},{"location":"readme/#configure-your-cloudflare-tunnel","title":"Configure Your Cloudflare Tunnel","text":"<p>You can use our Cloudflare Configuration Guide however remember to copy the values of the example config for this deployment. </p>"},{"location":"readme/#create-a-cloudflare-system-service","title":"Create a Cloudflare System Service","text":"<p>Cloudflare Service Setup Guide</p>"},{"location":"readme/#add-cname-records","title":"Add CNAME Records","text":"<p>After setting up your Cloudflare Tunnel, you need to add CNAME records for your services. You can do this manually in the Cloudflare DNS panel or with using the following script: <code>add-cname-records.sh</code></p> <pre><code># Make the script executable\nchmod +x add-cname-records.sh\n\n# Run the script to add CNAME records\n./add-cname-records.sh\n</code></pre> <p>This script will add CNAME records for all Changemaker services to your Cloudflare DNS.</p> <p>It will also set up a Cloudflare Access Application for all services execpt for your website and gitea. This is a extra layer of security that we do recommend for your deployment. It will automatically allow any emails with from the root domain that you set in the <code>config.sh</code> process. For example, if you set your root domain to <code>example.com</code> your access rule will allow emails ending with @example.com thorugh. You can update your access settings in the Cloudflare Zero Trust dashboard.</p> <p>Cloudflare Zero Trust</p> <p>To ensure that system is secure, we highly recommend setting up some level of access control using Cloudflare Zero Trust. The <code>add-cname-records.sh</code> will do this automatically however the user is encouraged to familiarize themselves with Cloudflares Zero Trust access system. </p>"},{"location":"readme/#website-build-and-deployment-workflow","title":"Website Build and Deployment Workflow","text":"<p>Changemaker uses MkDocs to create your website content, which is then served by an Nginx server. To update your website, you need to:</p> <ol> <li>Edit your content using either the Code Server or locally on your machine</li> <li>Build the static site files </li> <li>Let the Nginx server (mkdocs-site-server) serve the built site</li> </ol>"},{"location":"readme/#building-your-website","title":"Building Your Website","text":"<p>You can build your website in two ways:</p>"},{"location":"readme/#option-1-using-code-server-recommended-for-remote-deployments","title":"Option 1: Using Code Server (recommended for remote deployments)","text":"<ol> <li>Access Code Server at http://localhost:8888 or https://code-server.yourdomain.com</li> <li>Navigate to the mkdocs directory <code>/home/coder/mkdocs/</code></li> <li>Open a terminal in Code Server</li> <li>Run the build command: <pre><code>cd /home/coder/mkdocs\nmkdocs build\n</code></pre></li> </ol>"},{"location":"readme/#option-2-locally-on-your-machine","title":"Option 2: Locally on your machine","text":"<ol> <li>Navigate to the mkdocs directory in your project: <pre><code>cd /home/bunker-admin/Changemaker/mkdocs\n</code></pre></li> <li>Run the build command: <pre><code>mkdocs build\n</code></pre></li> </ol> <p>After building, the static site files will be generated in the <code>mkdocs/site</code> directory, which is automatically mounted to the Nginx server (mkdocs-site-server). Your website will be immediately available at: - Locally: http://localhost:4001 - With Cloudflare: https://yourdomain.com</p>"},{"location":"readme/#development-vs-production","title":"Development vs Production","text":"<ul> <li>During development, you can use the MkDocs live server at port 4000, which automatically rebuilds when you make changes</li> <li>For production, build your site as described above and let the Nginx server at port 4001 serve the static files</li> </ul>"},{"location":"readme/#accessing-your-services","title":"Accessing Your Services","text":"<p>The Homepage acts as a central dashboard for all your Changemaker services. You can access it at:</p> <ul> <li>Locally: http://localhost:3011 or http://your-server-ip:3011</li> <li>With Cloudflare: https://homepage.yourdomain.com</li> </ul> <p>The Homepage will display links to all your deployed services, making it easy to navigate your Changemaker ecosystem.</p> <p>After installation and cloudflare deployment you can also access individual services at the following URLs:</p> <ul> <li>Website: https://yourdomain.com</li> <li>Homepage: https://homepage.yourdomain.com</li> <li>Live Preview: https://live.yourdomain.com</li> <li>Excalidraw: https://excalidraw.yourdomain.com</li> <li>Listmonk: https://listmonk.yourdomain.com</li> <li>Monica CRM: https://monica.yourdomain.com</li> <li>MkDocs: https://yourdomain.com</li> <li>Flatnotes: https://flatnotes.yourdomain.com</li> <li>Code Server: https://code-server.yourdomain.com</li> <li>Ollama: https://ollama.yourdomain.com</li> <li>OpenWebUI: https://open-web-ui.yourdomain.com</li> <li>Gitea: https://gitea.yourdomain.com</li> <li>Portainer: https://portainer.yourdomain.com</li> <li>Mini QR: https://mini-qr.yourdomain.com</li> <li>Ferdium: https://ferdium.yourdomain.com</li> <li>Answer: https://answer.yourdomain.com</li> <li>NocoDB: https://nocodb.yourdomain.com</li> <li>n8n: https://n8n.yourdomain.com</li> <li>ConvertX: https://convertx.yourdomain.com</li> <li>Rocket.Chat: https://rocket.yourdomain.com</li> </ul>"},{"location":"readme/#troubleshooting","title":"Troubleshooting","text":"<p>If you encounter issues:</p> <ol> <li> <p>Check the Docker logs: <pre><code>docker compose logs\n</code></pre></p> </li> <li> <p>Verify service status: <pre><code>docker compose ps\n</code></pre></p> </li> <li> <p>Ensure your Cloudflare Tunnel is running: <pre><code>sudo systemctl status cloudflared\n</code></pre></p> </li> <li> <p>Check CNAME records in your Cloudflare dashboard.</p> </li> </ol> <p>For additional help, please file an issue on our GitHub repository.</p>"},{"location":"apps/","title":"Changemaker V5 - Apps & Services Documentation","text":"<p>This document provides an overview of all the applications and services included in the Changemaker V5 productivity suite, along with links to their documentation.</p>"},{"location":"apps/#dashboard","title":"Dashboard","text":""},{"location":"apps/#homepage","title":"Homepage","text":"<ul> <li>Description: Main dashboard for Changemaker V5</li> <li>Documentation: Homepage Docs</li> <li>Local Access: http://localhost:3010/</li> <li>Details: Homepage serves as your central command center, providing a unified dashboard to access all Changemaker services from one place. It features customizable layouts, service status monitoring, and bookmarks to frequently used pages, eliminating the need to remember numerous URLs.</li> </ul>"},{"location":"apps/#essential-tools","title":"Essential Tools","text":""},{"location":"apps/#code-server","title":"Code Server","text":"<ul> <li>Description: Visual Studio Code in the browser</li> <li>Documentation: Code Server Docs</li> <li>Local Access: http://localhost:8888/</li> <li>Details: Code Server brings the power of VS Code to your browser, allowing you to develop and edit code from any device without local installation. This makes it perfect for quick edits to website content, fixing formatting issues, or developing from tablets or borrowed computers. The familiar VS Code interface includes extensions, syntax highlighting, and Git integration.</li> </ul>"},{"location":"apps/#flatnotes","title":"Flatnotes","text":"<ul> <li>Description: Simple note-taking app - connected directly to blog</li> <li>Documentation: Flatnotes Docs</li> <li>Local Access: http://localhost:8089/</li> <li>Details: Flatnotes offers distraction-free, markdown-based note-taking with automatic saving and powerful search. Perfect for capturing ideas that can be directly published to your blog without reformatting. Use it for drafting newsletters, documenting processes, or maintaining a knowledge base that's both private and publishable.</li> </ul>"},{"location":"apps/#listmonk","title":"Listmonk","text":"<ul> <li>Description: Self-hosted newsletter and mailing list manager</li> <li>Documentation: Listmonk Docs</li> <li>Local Access: http://localhost:9000/</li> <li>Details: Listmonk provides complete control over your email campaigns without subscription fees or content restrictions. Create segmented lists, design professional newsletters, track engagement metrics, and manage opt-ins/unsubscribes\u2014all while keeping your audience data private. Perfect for consistent communication with supporters without the censorship risks or costs of commercial platforms.</li> </ul>"},{"location":"apps/#nocodb","title":"NocoDB","text":"<ul> <li>Description: Open Source Airtable Alternative</li> <li>Documentation: NocoDB Docs</li> <li>Local Access: http://localhost:8090/</li> <li>Details: NocoDB transforms any database into a smart spreadsheet with advanced features like forms, views, and automations. Use it to create volunteer signup systems, event management databases, or campaign tracking tools without subscription costs. Its familiar spreadsheet interface makes it accessible to non-technical users while providing the power of a relational database.</li> </ul>"},{"location":"apps/#content-creation","title":"Content Creation","text":""},{"location":"apps/#mkdocs-material-theme","title":"MkDocs - Material Theme","text":"<ul> <li>Description: Static site generator and documentation builder</li> <li>Documentation: MkDocs Docs</li> <li>Local Access: http://localhost:4000/</li> <li>Details: MkDocs with Material theme transforms simple markdown files into beautiful, professional documentation sites. Ideal for creating campaign websites, project documentation, or public-facing content that loads quickly and ranks well in search engines. The Material theme adds responsive design, dark mode, and advanced navigation features.</li> </ul>"},{"location":"apps/#excalidraw","title":"Excalidraw","text":"<ul> <li>Description: Virtual collaborative whiteboard for sketching and drawing</li> <li>Documentation: Excalidraw Docs</li> <li>Local Access: http://localhost:3333/</li> <li>Details: Excalidraw provides a virtual whiteboard for creating diagrams, flowcharts, or sketches with a hand-drawn feel. It's excellent for visual brainstorming, planning project workflows, or mapping out campaign strategies. Multiple people can collaborate in real-time, making it ideal for remote team planning sessions.</li> </ul>"},{"location":"apps/#gitea","title":"Gitea","text":"<ul> <li>Description: Lightweight self-hosted Git service</li> <li>Documentation: Gitea Docs</li> <li>Local Access: http://localhost:3030/</li> <li>Details: Gitea provides a complete code and document version control system similar to GitHub but fully under your control. Use it to track changes to campaign materials, collaborate on content development, manage website code, or maintain configuration files with full revision history. Multiple contributors can work together without overwriting each other's changes.</li> </ul>"},{"location":"apps/#openwebui","title":"OpenWebUI","text":"<ul> <li>Description: Web interface for Ollama</li> <li>Documentation: OpenWebUI Docs</li> <li>Local Access: http://localhost:3005/</li> <li>Details: OpenWebUI provides a user-friendly chat interface for interacting with your Ollama AI models. This makes AI accessible to non-technical team members for tasks like drafting responses, generating creative content, or researching topics. The familiar chat format allows anyone to leverage AI assistance without needing to understand the underlying technology.</li> </ul>"},{"location":"apps/#community-data","title":"Community & Data","text":""},{"location":"apps/#monica-crm","title":"Monica CRM","text":"<ul> <li>Description: Personal relationship management system</li> <li>Documentation: Monica Docs</li> <li>Local Access: http://localhost:8085/</li> <li>Details: Monica CRM helps you maintain meaningful relationships by tracking interactions, important dates, and personal details about contacts. It's perfect for community organizers to remember conversation contexts, follow up appropriately, and nurture connections with supporters. Unlike corporate CRMs, Monica focuses on the human aspects of relationships rather than just sales metrics.</li> </ul>"},{"location":"apps/#answer","title":"Answer","text":"<ul> <li>Description: Q&A platform for teams</li> <li>Documentation: Answer Docs</li> <li>Local Access: http://localhost:9080/</li> <li>Details: Answer creates a knowledge-sharing community where team members or supporters can ask questions, provide solutions, and vote on the best responses. It builds an organized, searchable knowledge base that grows over time. Use it for internal team support, public FAQs, or gathering community input on initiatives while keeping valuable information accessible rather than buried in email threads.</li> </ul>"},{"location":"apps/#ferdium","title":"Ferdium","text":"<ul> <li>Description: All-in-one messaging application</li> <li>Documentation: Ferdium Docs</li> <li>Local Access: http://localhost:3002/</li> <li>Details: Ferdium consolidates all your communication platforms (Slack, Discord, WhatsApp, Telegram, etc.) into a single interface. This allows you to monitor and respond across channels without constantly switching applications. Perfect for community managers who need to maintain presence across multiple platforms without missing messages or getting overwhelmed.</li> </ul>"},{"location":"apps/#rocketchat","title":"Rocket.Chat","text":"<ul> <li>Description: Team collaboration platform with chat, channels, and video conferencing</li> <li>Documentation: Rocket.Chat Docs</li> <li>Local Access: http://localhost:3004/</li> <li>Details: Rocket.Chat provides a complete communication platform for your team or community. Features include real-time chat, channels, direct messaging, file sharing, video calls, and integrations with other services. It's perfect for creating private discussion spaces, coordinating campaigns, or building community engagement. Unlike commercial platforms, you maintain full data sovereignty and control over user privacy.</li> </ul>"},{"location":"apps/#development","title":"Development","text":""},{"location":"apps/#ollama","title":"Ollama","text":"<ul> <li>Description: Local AI model server for running large language models</li> <li>Documentation: Ollama Docs</li> <li>Local Access: http://localhost:11435/</li> <li>Details: Ollama runs powerful AI language models locally on your server, providing AI capabilities without sending sensitive data to third-party services. Use it for content generation, research assistance, or data analysis with complete privacy. Models run on your hardware, giving you full control over what AI can access and ensuring your information stays confidential.</li> </ul>"},{"location":"apps/#portainer","title":"Portainer","text":"<ul> <li>Description: Docker container management UI</li> <li>Documentation: Portainer Docs</li> <li>Local Access: https://localhost:9443/</li> <li>Details: Portainer simplifies Docker management with a visual interface for controlling containers, images, networks, and volumes. Instead of complex command-line operations, you can start/stop services, view logs, and manage resources through an intuitive UI, making system maintenance accessible to non-technical users.</li> </ul>"},{"location":"apps/#mini-qr","title":"Mini-QR","text":"<ul> <li>Description: QR Code Generator</li> <li>Documentation: Mini-QR Docs</li> <li>Local Access: http://localhost:8081/</li> <li>Details: Mini-QR enables you to quickly generate customizable QR codes for any URL, text, or contact information. Perfect for campaign materials, business cards, or event signage. Create codes that link to your digital materials without relying on third-party services that may track usage or expire.</li> </ul>"},{"location":"apps/#convertx","title":"ConvertX","text":"<ul> <li>Description: Self-hosted file conversion tool</li> <li>Documentation: ConvertX GitHub</li> <li>Local Access: http://localhost:3100/</li> <li>Details: ConvertX provides a simple web interface for converting files between different formats. It supports a wide range of file types including documents, images, audio, and video. This enables you to maintain full control over your file conversions without relying on potentially insecure third-party services. Perfect for converting documents for campaigns, optimizing images for web use, or preparing media files for different platforms.</li> </ul>"},{"location":"apps/#n8n","title":"n8n","text":"<ul> <li>Description: Workflow automation platform</li> <li>Documentation: n8n Docs</li> <li>Local Access: http://localhost:5678/</li> <li>Details: n8n automates repetitive tasks by connecting your applications and services with visual workflows. You can create automations like sending welcome emails to new supporters, posting social media updates across platforms, or synchronizing contacts between databases\u2014all without coding. This saves hours of manual work and ensures consistent follow-through on processes.</li> </ul>"},{"location":"apps/#remote-access","title":"Remote Access","text":"<p>When configured with Cloudflare Tunnels, you can access these services remotely at:</p> <ul> <li>Homepage: https://homepage.yourdomain.com</li> <li>Excalidraw: https://excalidraw.yourdomain.com</li> <li>Listmonk: https://listmonk.yourdomain.com</li> <li>Monica CRM: https://monica.yourdomain.com</li> <li>MkDocs: https://yourdomain.com</li> <li>Flatnotes: https://flatnotes.yourdomain.com</li> <li>Code Server: https://code-server.yourdomain.com</li> <li>Ollama: https://ollama.yourdomain.com</li> <li>OpenWebUI: https://open-web-ui.yourdomain.com</li> <li>Gitea: https://gitea.yourdomain.com</li> <li>Portainer: https://portainer.yourdomain.com</li> <li>Mini QR: https://mini-qr.yourdomain.com</li> <li>Ferdium: https://ferdium.yourdomain.com</li> <li>Answer: https://answer.yourdomain.com</li> <li>NocoDB: https://nocodb.yourdomain.com</li> <li>n8n: https://n8n.yourdomain.com</li> <li>ConvertX: https://convertx.yourdomain.com</li> <li>Rocket.Chat: https://rocket.yourdomain.com</li> </ul>"},{"location":"apps/answer/","title":"Answer: Q&A Knowledge Base Platform","text":"<p>Answer is a self-hosted, open-source Q&A platform designed to help teams and communities build a shared knowledge base. Users can ask questions, provide answers, and vote on the best solutions, creating an organized and searchable repository of information.</p>"},{"location":"apps/answer/#key-features","title":"Key Features","text":"<ul> <li>Question & Answer Format: Familiar Stack Overflow-like interface.</li> <li>Voting System: Users can upvote or downvote questions and answers to highlight the best content.</li> <li>Tagging: Organize questions with tags for easy filtering and discovery.</li> <li>Search Functionality: Powerful search to find existing answers quickly.</li> <li>User Reputation: (Often a feature in Q&A platforms) Users can earn reputation for helpful contributions.</li> <li>Markdown Support: Write questions and answers using Markdown.</li> <li>Self-Hosted: Full control over your data and platform.</li> </ul>"},{"location":"apps/answer/#documentation","title":"Documentation","text":"<p>For more detailed information about Answer, visit the official documentation.</p>"},{"location":"apps/answer/#getting-started-with-answer","title":"Getting Started with Answer","text":""},{"location":"apps/answer/#accessing-answer","title":"Accessing Answer","text":"<ol> <li>URL: Access Answer locally via <code>http://localhost:9080/</code> (or your configured external URL).</li> <li>Account Creation/Login: You will likely need to create an account or log in to participate (ask questions, answer, vote). The first user might be an admin.</li> </ol>"},{"location":"apps/answer/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Asking a Question:</p> <ul> <li>Look for a button like \"Ask Question.\"</li> <li>Write a clear and concise title for your question.</li> <li>Provide detailed context and information in the body of the question using Markdown.</li> <li>Add relevant tags to help categorize your question.</li> </ul> </li> <li> <p>Answering a Question:</p> <ul> <li>Browse or search for questions you can help with.</li> <li>Write your answer in the provided text area, using Markdown for formatting.</li> <li>Submit your answer.</li> </ul> </li> <li> <p>Voting and Commenting:</p> <ul> <li>Upvote helpful questions and answers to increase their visibility.</li> <li>Downvote incorrect or unhelpful content.</li> <li>Leave comments to ask for clarification or provide additional information without writing a full answer.</li> </ul> </li> <li> <p>Searching for Information: Use the search bar to find if your question has already been asked and answered.</p> </li> <li> <p>Managing Content (Admins/Moderators):</p> <ul> <li>Admins can typically manage users, tags, and content (e.g., edit or delete inappropriate posts).</li> </ul> </li> </ol>"},{"location":"apps/answer/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Internal Team Support: Create a knowledge base for your team to ask and answer questions about processes, tools, or projects.</li> <li>Public FAQs: Set up a public-facing Q&A site for your campaign or organization where supporters can find answers to common questions.</li> <li>Community Forum: Foster a community where users can help each other and share knowledge related to your cause or Changemaker itself.</li> <li>Documentation Supplement: Use it alongside your main MkDocs site to handle dynamic questions that arise from users.</li> </ul>"},{"location":"apps/answer/#editing-the-site","title":"Editing the Site","text":"<p>Answer is a platform for building a Q&A knowledge base. It is not used for editing this main documentation site (the one you are reading). Site editing is done via Code Server.</p>"},{"location":"apps/answer/#further-information","title":"Further Information","text":"<ul> <li>Answer Official Website & Documentation: https://answer.dev/ and https://answer.dev/docs</li> </ul>"},{"location":"apps/code-server/","title":"Code Server: VS Code in Your Browser","text":"<p>Code Server brings the powerful and familiar Visual Studio Code experience directly to your web browser. This allows you to develop, edit code, and manage your projects from any device with internet access, without needing to install VS Code locally.</p> <p>It's an essential tool within Changemaker for making quick edits to your website content, managing configuration files, or even full-fledged development tasks on the go.</p>"},{"location":"apps/code-server/#key-features","title":"Key Features","text":"<ul> <li>Full VS Code Experience: Access almost all features of desktop VS Code, including the editor, terminal, debugger (for supported languages), extensions, themes, and settings.</li> <li>Remote Access: Code from anywhere, on any device (laptops, tablets, etc.).</li> <li>Workspace Management: Open and manage your project folders just like in desktop VS Code.</li> <li>Extension Marketplace: Install and use your favorite VS Code extensions.</li> <li>Integrated Terminal: Access a terminal directly within the browser interface.</li> <li>Git Integration: Manage your version control seamlessly.</li> </ul>"},{"location":"apps/code-server/#documentation","title":"Documentation","text":"<p>For more detailed information about Code Server, visit the official repository.</p>"},{"location":"apps/code-server/#getting-started-with-code-server","title":"Getting Started with Code Server","text":""},{"location":"apps/code-server/#accessing-code-server","title":"Accessing Code Server","text":"<ol> <li>URL: You can access Code Server locally via <code>http://localhost:8888/</code> (or your configured external URL if set up).</li> <li>Login: You will be prompted for a password. This password can be found in the configuration file located at <code>configs/code-server/.config/code-server/config.yaml</code> within your main Changemaker project directory (e.g., <code>/home/bunker-admin/Changemaker/configs/code-server/.config/code-server/config.yaml</code>). You might need to access this file directly on your server or through another method for the initial password retrieval.</li> </ol>"},{"location":"apps/code-server/#basic-usage-editing-your-documentation-site","title":"Basic Usage: Editing Your Documentation Site","text":"<p>A common use case within Changemaker is editing your MkDocs documentation site.</p> <ol> <li> <p>Open Your Workspace:</p> <ul> <li>Once logged into Code Server, use the \"File\" menu or the Explorer sidebar to \"Open Folder...\".</li> <li>Navigate to and select the root directory of your Changemaker project (e.g., <code>/home/bunker-admin/Changemaker/</code> or the path where your Changemaker files are located if different, typically where the <code>docker-compose.yml</code> for Changemaker is).</li> </ul> </li> <li> <p>Navigate to Documentation Files:</p> <ul> <li>In the Explorer sidebar, expand the <code>mkdocs</code> folder, then the <code>docs</code> folder.</li> <li>Here you'll find all your Markdown (<code>.md</code>) files (like <code>index.md</code>, <code>readme.md</code>, files within <code>apps/</code>, etc.), your site configuration (<code>mkdocs.yml</code>), and custom assets (like <code>stylesheets/extra.css</code> or files in <code>overrides/</code>).</li> </ul> </li> <li> <p>Edit a File:</p> <ul> <li>Click on a Markdown file (e.g., <code>index.md</code> or any page you want to change like <code>apps/code-server.md</code> itself!).</li> <li>The file will open in the editor. Make your changes using standard Markdown syntax. You'll benefit from live preview capabilities if you have the appropriate VS Code extensions installed (e.g., Markdown Preview Enhanced).</li> </ul> </li> <li> <p>Save Changes:</p> <ul> <li>Press <code>Ctrl+S</code> (or <code>Cmd+S</code> on Mac) to save your changes.</li> <li>If your MkDocs development server is running with live reload (e.g., via <code>mkdocs serve</code> executed in a terminal, perhaps within Code Server itself or on your host machine), your documentation site should update automatically in your browser. Otherwise, you may need to rebuild/redeploy your MkDocs site.</li> </ul> </li> </ol>"},{"location":"apps/code-server/#using-the-integrated-terminal","title":"Using the Integrated Terminal","text":"<p>The integrated terminal is extremely useful for various tasks without leaving Code Server: * Running Git commands (<code>git pull</code>, <code>git add .</code>, <code>git commit -m \"docs: update content\"</code>, <code>git push</code>). * Managing your MkDocs site (<code>mkdocs serve</code> to start a live-preview server, <code>mkdocs build</code> to generate static files). * Any other shell commands needed for your project.</p> <p>To open the terminal: Go to \"Terminal\" > \"New Terminal\" in the Code Server menu, or use the shortcut (often <code>Ctrl+\\</code> or <code>Ctrl+~</code>).</p>"},{"location":"apps/code-server/#further-information","title":"Further Information","text":"<p>For more detailed information on Code Server's features, advanced configurations, and troubleshooting, please refer to the official Code Server Documentation.</p>"},{"location":"apps/excalidraw/","title":"Excalidraw: Collaborative Virtual Whiteboard","text":"<p>Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams with a hand-drawn feel. It's excellent for brainstorming, creating flowcharts, planning project workflows, or mapping out campaign strategies.</p>"},{"location":"apps/excalidraw/#key-features","title":"Key Features","text":"<ul> <li>Hand-drawn Feel: Creates diagrams that look informal and approachable.</li> <li>Real-time Collaboration: Multiple users can work on the same drawing simultaneously.</li> <li>Simple Interface: Easy to learn and use, with essential drawing tools.</li> <li>Export Options: Save your drawings as PNG, SVG, or <code>.excalidraw</code> files (for later editing).</li> <li>Library Support: Create and use libraries of reusable components.</li> <li>Self-Hosted: As part of Changemaker, your Excalidraw instance is self-hosted, keeping your data private.</li> </ul>"},{"location":"apps/excalidraw/#documentation","title":"Documentation","text":"<p>For more detailed information about Excalidraw, visit the official repository.</p>"},{"location":"apps/excalidraw/#getting-started-with-excalidraw","title":"Getting Started with Excalidraw","text":""},{"location":"apps/excalidraw/#accessing-excalidraw","title":"Accessing Excalidraw","text":"<ol> <li>URL: Access Excalidraw locally via <code>http://localhost:3333/</code> (or your configured external URL).</li> <li>No Login Required (Typically): Excalidraw itself usually doesn't require a login to start drawing or collaborating if someone shares a link with you.</li> </ol>"},{"location":"apps/excalidraw/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Start Drawing: </p> <ul> <li>The interface presents a canvas and a toolbar with drawing tools (select, rectangle, diamond, ellipse, arrow, line, free-draw, text).</li> <li>Select a tool and click/drag on the canvas to create shapes or text.</li> </ul> </li> <li> <p>Styling Elements:</p> <ul> <li>Select an element on the canvas.</li> <li>Use the context menu that appears to change properties like color, fill style, stroke width, font size, alignment, etc.</li> </ul> </li> <li> <p>Connecting Shapes: Use arrows or lines to connect shapes to create flowcharts or diagrams.</p> </li> <li> <p>Collaboration (If needed):</p> <ul> <li>Click on the \"Live collaboration\" button (often a users icon).</li> <li>Start a session. You'll get a unique link to share with others.</li> <li>Anyone with the link can join the session and draw in real-time.</li> </ul> </li> <li> <p>Saving Your Work:</p> <ul> <li>Export: Click the menu icon (usually top-left) and choose \"Export image\". You can select format (PNG, SVG), background options, etc.</li> <li>Save to .excalidraw file: To save your drawing with all its properties for future editing in Excalidraw, choose \"Save to file\". This will download an <code>.excalidraw</code> JSON file.</li> </ul> </li> <li> <p>Loading a Drawing: </p> <ul> <li>Click the menu icon and choose \"Open\" to load a previously saved <code>.excalidraw</code> file.</li> </ul> </li> </ol>"},{"location":"apps/excalidraw/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Brainstorming ideas for campaigns or projects.</li> <li>Creating sitemaps or user flow diagrams for your website.</li> <li>Designing simple graphics or illustrations for your documentation or blog posts.</li> <li>Collaboratively planning workflows with team members.</li> </ul>"},{"location":"apps/excalidraw/#editing-the-site","title":"Editing the Site","text":"<p>Editing of the main Changemaker documentation site (the one you are reading now) is done via Code Server, not Excalidraw. Excalidraw is a tool for creating visual content that you might then include in your documentation (e.g., by exporting an image and adding it to a Markdown file).</p>"},{"location":"apps/excalidraw/#further-information","title":"Further Information","text":"<ul> <li>Excalidraw Official Site: Excalidraw.com (for general info and the public version)</li> <li>Excalidraw GitHub Repository: Excalidraw on GitHub (for documentation, source code, and community discussions).</li> </ul>"},{"location":"apps/ferdium/","title":"Ferdium: All-in-One Messaging Application","text":"<p>Ferdium is a desktop application that allows you to combine all your messaging services into one place. It's a fork of Franz and Ferdi, designed to help you manage multiple chat and communication platforms without needing to switch between numerous browser tabs or apps.</p> <p>Note: Ferdium is typically a desktop application you install on your computer, not a web service you access via a browser within the Changemaker suite in the same way as other listed web apps. However, if it's been containerized and made accessible via a web interface in your specific Changemaker setup (e.g., via Kasm or a similar VNC/RDP in Docker setup), the access method would be specific to that.</p> <p>Assuming it's accessible via a web URL in your Changemaker instance:</p>"},{"location":"apps/ferdium/#key-features-general-ferdium-features","title":"Key Features (General Ferdium Features)","text":"<ul> <li>Service Integration: Supports a vast number of services (Slack, WhatsApp, Telegram, Discord, Gmail, Messenger, Twitter, and many more).</li> <li>Unified Interface: Manage all your communication from a single window.</li> <li>Workspaces: Organize services into different workspaces (e.g., personal, work).</li> <li>Customization: Themes, notifications, and service-specific settings.</li> <li>Cross-Platform: Available for Windows, macOS, and Linux (as a desktop app).</li> <li>Open Source: Community-driven development.</li> </ul>"},{"location":"apps/ferdium/#documentation","title":"Documentation","text":"<p>For more detailed information about Ferdium, visit the official repository.</p>"},{"location":"apps/ferdium/#getting-started-with-ferdium-web-access-within-changemaker","title":"Getting Started with Ferdium (Web Access within Changemaker)","text":""},{"location":"apps/ferdium/#accessing-ferdium-if-web-accessible","title":"Accessing Ferdium (If Web-Accessible)","text":"<ol> <li>URL: Access Ferdium locally via <code>http://localhost:3002/</code> (or your configured external URL). This URL implies it's running as a web-accessible service in your Docker setup.</li> <li>Setup/Login: <ul> <li>You might be presented with a desktop-like interface within your browser.</li> <li>The first step would be to add services (e.g., connect your Slack, WhatsApp accounts).</li> </ul> </li> </ol>"},{"location":"apps/ferdium/#basic-usage-general-ferdium-workflow","title":"Basic Usage (General Ferdium Workflow)","text":"<ol> <li> <p>Add Services:</p> <ul> <li>Look for an option to \"Add a new service\" or a similar button.</li> <li>Browse the list of available services and select the ones you use.</li> <li>You will need to log in to each service individually within Ferdium (e.g., enter your Slack credentials, scan a WhatsApp QR code).</li> </ul> </li> <li> <p>Organize Services:</p> <ul> <li>Services will typically appear in a sidebar.</li> <li>You can reorder them or group them into workspaces if the feature is prominent in the web version.</li> </ul> </li> <li> <p>Using Services:</p> <ul> <li>Click on a service in the sidebar to open its interface within Ferdium.</li> <li>Interact with it as you normally would (send messages, check notifications).</li> </ul> </li> <li> <p>Manage Notifications: Configure how you want to receive notifications for each service to avoid being overwhelmed.</p> </li> </ol>"},{"location":"apps/ferdium/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Centralized Communication: For community managers or team members who need to monitor and respond across multiple platforms (Discord, Telegram, Slack, email, etc.) without constantly switching browser tabs or apps.</li> <li>Improved Focus: Reduces distractions by having all communication in one place.</li> </ul>"},{"location":"apps/ferdium/#editing-the-site","title":"Editing the Site","text":"<p>Ferdium is a messaging application. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/ferdium/#further-information","title":"Further Information","text":"<ul> <li>Ferdium Official Website: https://ferdium.org/</li> <li>Ferdium GitHub: https://github.com/ferdium/ferdium-app (for the desktop app, but may have info relevant to a containerized version if that's what you are running).</li> </ul> <p>Important Consideration for Changemaker: If Ferdium is indeed running as a web-accessible service at <code>http://localhost:3002/</code>, its setup and usage might be slightly different from the standard desktop application. The documentation specific to the Docker image or method used to deploy it within Changemaker would be most relevant.</p>"},{"location":"apps/flatnotes/","title":"Flatnotes: Simple Markdown Note-Taking","text":"<p>Flatnotes is a straightforward, self-hosted, markdown-based note-taking application. It's designed for simplicity and efficiency, allowing you to quickly capture ideas, draft content, and organize your notes. A key feature in the Changemaker context is its potential to directly feed into your blog or documentation.</p>"},{"location":"apps/flatnotes/#key-features","title":"Key Features","text":"<ul> <li>Markdown First: Write notes using the familiar and versatile Markdown syntax.</li> <li>Live Preview: (Often a feature) See how your Markdown will render as you type.</li> <li>Tagging/Organization: Organize notes with tags or a folder-like structure.</li> <li>Search: Quickly find the information you need within your notes.</li> <li>Automatic Saving: Reduces the risk of losing work.</li> <li>Simple Interface: Distraction-free writing environment.</li> <li>Self-Hosted: Your notes remain private on your server.</li> <li>Potential Blog Integration: Notes can be easily copied or potentially directly published to your MkDocs site or other blog platforms that use Markdown.</li> </ul>"},{"location":"apps/flatnotes/#documentation","title":"Documentation","text":"<p>For more detailed information about Flatnotes, visit the official repository.</p>"},{"location":"apps/flatnotes/#getting-started-with-flatnotes","title":"Getting Started with Flatnotes","text":""},{"location":"apps/flatnotes/#accessing-flatnotes","title":"Accessing Flatnotes","text":"<ol> <li>URL: Access Flatnotes locally via <code>http://localhost:8089/</code> (or your configured external URL).</li> <li>Login: Flatnotes will have its own authentication. You should have set up credentials during the Changemaker installation or the first time you accessed Flatnotes.</li> </ol>"},{"location":"apps/flatnotes/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Creating a New Note:</p> <ul> <li>Look for a \"New Note\" button or similar interface element.</li> <li>Give your note a title.</li> <li>Start typing your content in Markdown in the main editor pane.</li> </ul> </li> <li> <p>Writing in Markdown:</p> <ul> <li>Use standard Markdown syntax for headings, lists, bold/italic text, links, images, code blocks, etc.</li> <li>Example: <pre><code># My Awesome Idea\n\nThis is a *brilliant* idea that I need to remember.\n\n## Steps\n1. Draft initial thoughts.\n2. Research more.\n3. Write a blog post.\n\n[Link to relevant site](https://example.com)\n</code></pre></li> </ul> </li> <li> <p>Saving Notes:</p> <ul> <li>Flatnotes typically saves your notes automatically as you type or when you switch to another note.</li> </ul> </li> <li> <p>Organizing Notes:</p> <ul> <li>Explore options for tagging your notes or organizing them into categories/folders if the interface supports it. This helps in managing a large number of notes.</li> </ul> </li> <li> <p>Searching Notes:</p> <ul> <li>Use the search bar to find notes based on keywords in their title or content.</li> </ul> </li> </ol>"},{"location":"apps/flatnotes/#using-flatnotes-for-blogdocumentation-content","title":"Using Flatnotes for Blog/Documentation Content","text":"<p>Flatnotes is excellent for drafting content that will eventually become part of your MkDocs site:</p> <ol> <li>Draft Your Article/Page: Write the full content in Flatnotes, focusing on the text and structure.</li> <li>Copy Markdown: Once you're satisfied, select all the text in your note and copy it.</li> <li>Create/Edit MkDocs File: <ul> <li>Go to Code Server.</li> <li>Navigate to your <code>mkdocs/docs/</code> directory (or a subdirectory like <code>blog/posts/</code>).</li> <li>Create a new <code>.md</code> file or open an existing one.</li> <li>Paste the Markdown content you copied from Flatnotes.</li> </ul> </li> <li>Save and Preview: Save the file in Code Server. If <code>mkdocs serve</code> is running, your site will update, and you can preview the new content.</li> </ol>"},{"location":"apps/flatnotes/#further-information","title":"Further Information","text":"<p>For more specific details on Flatnotes features, customization, or troubleshooting, refer to the official Flatnotes Documentation (as it's a GitHub-hosted project, the README and repository wiki are the primary sources of documentation).</p>"},{"location":"apps/gitea/","title":"Gitea: Self-Hosted Git Service","text":"<p>Gitea is a lightweight, self-hosted Git service. It provides a web interface for managing your Git repositories, similar to GitHub or GitLab, but running on your own server. This gives you full control over your code, documents, and version history.</p>"},{"location":"apps/gitea/#key-features","title":"Key Features","text":"<ul> <li>Repository Management: Create, manage, and browse Git repositories.</li> <li>Version Control: Track changes to code, documentation, and other files.</li> <li>Collaboration: Supports pull requests, issues, and wikis for team collaboration.</li> <li>User Management: Manage users and organizations with permission controls.</li> <li>Lightweight: Designed to be efficient and run on modest hardware.</li> <li>Self-Hosted: Full control over your data and infrastructure.</li> <li>Web Interface: User-friendly interface for common Git operations.</li> </ul>"},{"location":"apps/gitea/#documentation","title":"Documentation","text":"<p>For more detailed information about Gitea, visit the official documentation.</p>"},{"location":"apps/gitea/#getting-started-with-gitea","title":"Getting Started with Gitea","text":""},{"location":"apps/gitea/#accessing-gitea","title":"Accessing Gitea","text":"<ol> <li>URL: Access Gitea locally via <code>http://localhost:3030/</code> (or your configured external URL).</li> <li>Login/Registration: <ul> <li>The first time you access Gitea, you might need to go through an initial setup process or register an administrator account.</li> <li>For subsequent access, log in with your Gitea credentials.</li> </ul> </li> </ol>"},{"location":"apps/gitea/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Create a Repository:</p> <ul> <li>Once logged in, look for a \"New Repository\" button (often a \"+\" icon in the header).</li> <li>Give your repository a name, description, and choose visibility (public or private).</li> <li>You can initialize it with a README, .gitignore, and license if desired.</li> </ul> </li> <li> <p>Cloning a Repository:</p> <ul> <li>On the repository page, find the clone URL (HTTPS or SSH).</li> <li>Use this URL with the <code>git clone</code> command in your local terminal or within Code Server's terminal: <pre><code>git clone http://localhost:3030/YourUsername/YourRepository.git\n</code></pre></li> </ul> </li> <li> <p>Making Changes and Pushing:</p> <ul> <li>Make changes to files in your cloned repository locally.</li> <li>Use standard Git commands to commit and push your changes: <pre><code>git add .\ngit commit -m \"Your commit message\"\ngit push origin main # Or your default branch name\n</code></pre></li> </ul> </li> <li> <p>Using the Web Interface:</p> <ul> <li>Browse Files: View files and commit history directly in Gitea.</li> <li>Issues: Track bugs, feature requests, or tasks.</li> <li>Pull Requests: If collaborating, use pull requests to review and merge changes.</li> <li>Settings: Manage repository settings, collaborators, webhooks, etc.</li> </ul> </li> </ol>"},{"location":"apps/gitea/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Version Control for Documentation: Store and manage the Markdown files for your MkDocs site in a Gitea repository. This allows you to track changes, revert to previous versions, and collaborate on content.</li> <li>Code Management: If you are developing any custom code or scripts for your Changemaker instance or related projects.</li> <li>Configuration File Management: Keep track of important configuration files with version history.</li> <li>Collaborative Content Development: Teams can work on documents, with changes reviewed via pull requests before merging.</li> </ul>"},{"location":"apps/gitea/#editing-the-site","title":"Editing the Site","text":"<p>While Gitea hosts the source files (e.g., Markdown files for this documentation), the actual editing process for this MkDocs site is typically done using Code Server. You would: 1. Clone your documentation repository from Gitea to your local workspace (or open it directly if it's already part of your Changemaker file structure accessible by Code Server). 2. Edit the Markdown files using Code Server. 3. Commit and push your changes back to Gitea using Git commands in the Code Server terminal.</p>"},{"location":"apps/gitea/#further-information","title":"Further Information","text":"<ul> <li>Gitea Official Documentation: https://docs.gitea.io/</li> </ul>"},{"location":"apps/homepage/","title":"Homepage Dashboard: Your Central Hub","text":"<p>Homepage is your personal, customizable application dashboard. Within Changemaker V5, it acts as the central command center, providing a unified interface to access all integrated services, monitor their status, and keep bookmarks for frequently used internal and external pages.</p>"},{"location":"apps/homepage/#key-features","title":"Key Features","text":"<ul> <li>Unified Access: Quickly launch any Changemaker application (Code Server, Flatnotes, Listmonk, NocoDB, etc.) from one place.</li> <li>Service Status Monitoring: (If configured) See at a glance if your services are online and operational.</li> <li>Customizable Layout: Organize your dashboard with groups, links, and widgets to fit your workflow.</li> <li>Bookmarks: Keep important links (both internal Changemaker services and external websites) readily accessible.</li> <li>Themeable: Customize the look and feel to your preference.</li> <li>Lightweight & Fast: Loads quickly and efficiently.</li> </ul>"},{"location":"apps/homepage/#getting-started-with-homepage","title":"Getting Started with Homepage","text":""},{"location":"apps/homepage/#accessing-homepage","title":"Accessing Homepage","text":"<ol> <li>URL: You can typically access Homepage locally via <code>http://localhost:3010/</code> (or your configured external URL if set up).</li> <li>No Login Required (Usually): By default, Homepage itself doesn't require a login, but the services it links to (like Code Server or Listmonk) will have their own authentication.</li> </ol>"},{"location":"apps/homepage/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Exploring the Dashboard:</p> <ul> <li>The main view will show configured service groups and individual service links.</li> <li>Clicking on a service link (e.g., \"Code Server\") will open that application in a new tab or the current window, depending on its configuration.</li> </ul> </li> <li> <p>Understanding the Default Configuration:</p> <ul> <li>Changemaker V5 comes with a pre-configured <code>settings.yaml</code>, <code>services.yaml</code>, and potentially <code>bookmarks.yaml</code> for Homepage, located in the <code>configs/homepage/</code> directory within your Changemaker project structure.</li> <li>These files define what you see on your dashboard.</li> </ul> </li> <li> <p>Customizing Your Dashboard (Advanced):</p> <ul> <li>To customize Homepage, you'll typically edit its YAML configuration files. This can be done using Code Server.</li> <li>Navigate to Configuration: In Code Server, open your Changemaker project folder, then navigate to <code>configs/homepage/</code>.</li> <li>Edit <code>services.yaml</code>: To add, remove, or modify the services displayed. Example: Adding a new service <pre><code># In services.yaml\n- My Services:\n - My New App:\n href: http://localhost:XXXX # URL of your new app\n description: Description of my new app\n icon: fas fa-rocket # Font Awesome icon\n</code></pre></li> <li>Edit <code>bookmarks.yaml</code>: To add your own bookmarks, organized into groups. Example: Adding a bookmark group <pre><code># In bookmarks.yaml\n- Development:\n - GitHub:\n href: https://github.com/\n icon: fab fa-github\n</code></pre></li> <li>Edit <code>settings.yaml</code>: For general settings like page title, background, etc.</li> <li>Edit <code>widgets.yaml</code>: To add dynamic information like weather, search bars, etc.</li> <li>Apply Changes: After saving changes to these YAML files, you usually need to restart the Homepage Docker container for them to take effect, or Homepage might pick them up automatically depending on its setup.</li> </ul> </li> </ol>"},{"location":"apps/homepage/#further-information","title":"Further Information","text":"<p>For more detailed information on configuring Homepage, available widgets, and advanced customization options, please refer to the official Homepage Documentation.</p>"},{"location":"apps/listmonk/","title":"Listmonk: Self-Hosted Newsletter & Mailing List Manager","text":"<p>Listmonk is a powerful, self-hosted newsletter and mailing list manager. It gives you complete control over your email campaigns, subscriber data, and messaging without relying on third-party services that might have restrictive terms, high costs, or data privacy concerns. It's ideal for building and engaging with your community.</p>"},{"location":"apps/listmonk/#key-features","title":"Key Features","text":"<ul> <li>Subscriber Management: Import, organize, and segment your subscriber lists.</li> <li>Campaign Creation: Design and send email campaigns using rich text or plain Markdown.</li> <li>Templating: Create reusable email templates for consistent branding.</li> <li>Analytics: Track campaign performance with metrics like open rates, click-through rates, etc.</li> <li>Double Opt-In: Ensure compliance and list quality with double opt-in mechanisms.</li> <li>Self-Hosted: Full ownership of your data and infrastructure.</li> <li>API Access: Integrate Listmonk with other systems programmatically.</li> <li>Multi-lingual: Supports multiple languages.</li> </ul>"},{"location":"apps/listmonk/#documentation","title":"Documentation","text":"<p>For more detailed information about Listmonk, visit the official documentation.</p>"},{"location":"apps/listmonk/#getting-started-with-listmonk","title":"Getting Started with Listmonk","text":""},{"location":"apps/listmonk/#accessing-listmonk","title":"Accessing Listmonk","text":"<ol> <li>URL: Access Listmonk locally via <code>http://localhost:9000/</code> (or your configured external URL).</li> <li>Login: You will need to log in with the administrator credentials you configured during the Changemaker setup or the first time you accessed Listmonk.</li> </ol>"},{"location":"apps/listmonk/#basic-workflow","title":"Basic Workflow","text":"<ol> <li> <p>Configure Mail Settings (Important First Step):</p> <ul> <li>After logging in for the first time, navigate to Settings > SMTP.</li> <li>You MUST configure an SMTP server for Listmonk to be able to send emails. This could be a transactional email service (like SendGrid, Mailgun, Amazon SES - some offer free tiers) or your own mail server.</li> <li>Enter the SMTP host, port, username, and password for your chosen email provider.</li> <li>Send a test email from Listmonk to verify the settings.</li> </ul> </li> <li> <p>Create a Mailing List:</p> <ul> <li>Go to Lists and click \"New List\".</li> <li>Give your list a name (e.g., \"Monthly Newsletter Subscribers\"), a description, and choose its type (public or private).</li> <li>Set opt-in preferences (single or double opt-in).</li> </ul> </li> <li> <p>Import Subscribers:</p> <ul> <li>Go to Subscribers.</li> <li>You can add subscribers manually or import them from a CSV file.</li> <li>Ensure you have consent from your subscribers before adding them.</li> <li>Map CSV columns to Listmonk fields (email, name, etc.).</li> </ul> </li> <li> <p>Create an Email Template (Optional but Recommended):</p> <ul> <li>Go to Templates and click \"New Template\".</li> <li>Design a reusable HTML or Markdown template for your emails to maintain consistent branding.</li> <li>Use template variables (e.g., <code>{{ .Subscriber.Email }}</code>, <code>{{ .Subscriber.Name }}</code>) to personalize emails.</li> </ul> </li> <li> <p>Create and Send a Campaign:</p> <ul> <li>Go to Campaigns and click \"New Campaign\".</li> <li>Name: Give your campaign a descriptive name.</li> <li>Subject: Write a compelling email subject line.</li> <li>Lists: Select the mailing list(s) to send the campaign to.</li> <li>Content: Write your email content. You can choose:<ul> <li>Rich Text Editor: A WYSIWYG editor.</li> <li>Plain Text + Markdown: Write in Markdown for simplicity and version control friendliness.</li> <li>Use a Template: Select one of your pre-designed templates and fill in the content areas.</li> </ul> </li> <li>Send Test Email: Always send a test email to yourself or a small group to check formatting and links before sending to your entire list.</li> <li>Schedule or Send: You can schedule the campaign to be sent at a later time or send it immediately.</li> </ul> </li> <li> <p>Analyze Campaign Performance:</p> <ul> <li>After a campaign is sent, go to Campaigns, click on the campaign name, and view its statistics (sent, opened, clicked, etc.).</li> </ul> </li> </ol>"},{"location":"apps/listmonk/#further-information","title":"Further Information","text":"<p>For comprehensive details on all Listmonk features, advanced configurations (like bounce handling, API usage), and troubleshooting, please consult the official Listmonk Documentation.</p>"},{"location":"apps/mkdocs-material/","title":"MkDocs with Material Theme: Your Documentation Powerhouse","text":"<p>Changemaker V5 utilizes MkDocs with the Material theme to build this very documentation site. MkDocs is a fast, simple, and downright gorgeous static site generator that's geared towards building project documentation with Markdown.</p>"},{"location":"apps/mkdocs-material/#key-features-of-mkdocs-material-theme","title":"Key Features of MkDocs & Material Theme","text":"<ul> <li>Simple Markdown Syntax: Write documentation in plain Markdown files.</li> <li>Fast and Lightweight: Generates static HTML files that load quickly.</li> <li>Material Design: A clean, modern, and responsive design out-of-the-box.</li> <li>Highly Customizable: Extensive configuration options for themes, navigation, plugins, and more.</li> <li>Search Functionality: Built-in search makes it easy for users to find information.</li> <li>Plugin Ecosystem: Extend MkDocs with various plugins (e.g., for blog functionality, social cards, diagrams).</li> <li>Live Reload Server: <code>mkdocs serve</code> provides a development server that automatically reloads when you save changes.</li> </ul>"},{"location":"apps/mkdocs-material/#documentation","title":"Documentation","text":"<p>For more detailed information about MkDocs, visit the official documentation.</p>"},{"location":"apps/mkdocs-material/#editing-this-site-your-changemaker-documentation","title":"Editing This Site (Your Changemaker Documentation)","text":"<p>All content for this documentation site is managed as Markdown files within the <code>mkdocs/docs/</code> directory of your Changemaker project.</p>"},{"location":"apps/mkdocs-material/#how-to-edit-or-add-content","title":"How to Edit or Add Content:","text":"<ol> <li>Access Code Server: As outlined on the homepage and in the Code Server documentation, log into Code Server. Your password is in <code>configs/code-server/.config/code-server/config.yaml</code>.</li> <li>Navigate to the <code>docs</code> Directory:<ul> <li>In Code Server's file explorer, open your Changemaker project folder (e.g., <code>/home/bunker-admin/Changemaker/</code>).</li> <li>Go into the <code>mkdocs/docs/</code> subdirectory.</li> </ul> </li> <li>Find or Create Your Page:<ul> <li>To edit an existing page: Navigate to the relevant <code>.md</code> file (e.g., <code>apps/code-server.md</code> to edit the Code Server page, or <code>index.md</code> for the homepage content if not using <code>home.html</code> override directly).</li> <li>To create a new page: Create a new <code>.md</code> file in the appropriate location (e.g., <code>apps/my-new-app.md</code>).</li> </ul> </li> <li>Write in Markdown: Use standard Markdown syntax. Refer to the <code>guides/authoring-content.md</code> for tips on Markdown and MkDocs Material specific features.</li> <li>Update Navigation (if adding a new page):<ul> <li>Open <code>mkdocs/mkdocs.yml</code>.</li> <li>Add your new page to the <code>nav:</code> section to make it appear in the site navigation. For example: <pre><code>nav:\n - Home: index.md\n - ...\n - Applications:\n - ...\n - My New App: apps/my-new-app.md # Add your new page here\n - ...\n</code></pre></li> </ul> </li> <li>Save Your Changes: Press <code>Ctrl+S</code> (or <code>Cmd+S</code> on Mac) in Code Server.</li> <li>Preview Changes:<ul> <li>The MkDocs development server (if you've run <code>mkdocs serve</code> in a terminal within your <code>mkdocs</code> directory) will automatically rebuild the site and your browser should refresh to show the changes.</li> <li>The typical URL for the local development server is <code>http://localhost:8000</code> or <code>http://127.0.0.1:8000</code>.</li> </ul> </li> </ol>"},{"location":"apps/mkdocs-material/#site-configuration","title":"Site Configuration","text":"<p>The main configuration for the documentation site is in <code>mkdocs/mkdocs.yml</code>. Here you can change: * <code>site_name</code>, <code>site_description</code>, <code>site_author</code> * Theme features and palette * Markdown extensions * Navigation structure (<code>nav</code>) * Plugins</p>"},{"location":"apps/mkdocs-material/#further-information","title":"Further Information","text":"<ul> <li>MkDocs: Official MkDocs Documentation</li> <li>MkDocs Material Theme: Official Material for MkDocs Documentation</li> <li>Your Site's Authoring Guide: Check out <code>guides/authoring-content.md</code> in your <code>mkdocs/docs/</code> directory.</li> </ul>"},{"location":"apps/monica-crm/","title":"Monica CRM: Personal Relationship Management","text":"<p>Monica CRM is a self-hosted, open-source personal relationship management system. It helps you organize and record interactions with your friends, family, and professional contacts, focusing on the human aspects of your relationships rather than just sales metrics like traditional CRMs.</p>"},{"location":"apps/monica-crm/#key-features","title":"Key Features","text":"<ul> <li>Contact Management: Store detailed information about your contacts (important dates, how you met, family members, etc.).</li> <li>Interaction Logging: Record activities, conversations, and reminders related to your contacts.</li> <li>Reminders: Set reminders for birthdays, anniversaries, or to get back in touch.</li> <li>Journaling: Keep a personal journal that can be linked to contacts or events.</li> <li>Data Ownership: Self-hosted, so you control your data.</li> <li>Focus on Personal Connections: Designed to strengthen personal relationships.</li> </ul>"},{"location":"apps/monica-crm/#documentation","title":"Documentation","text":"<p>For more detailed information about Monica CRM, visit the official documentation.</p>"},{"location":"apps/monica-crm/#getting-started-with-monica-crm","title":"Getting Started with Monica CRM","text":""},{"location":"apps/monica-crm/#accessing-monica-crm","title":"Accessing Monica CRM","text":"<ol> <li>URL: Access Monica CRM locally via <code>http://localhost:8085/</code> (or your configured external URL).</li> <li>Account Creation/Login: The first time you access Monica, you will need to create an account (email, password). Subsequent visits will require you to log in.</li> </ol>"},{"location":"apps/monica-crm/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Adding Contacts:</p> <ul> <li>Look for an \"Add Contact\" or similar button.</li> <li>Fill in as much information as you know: name, relationship to you, important dates (birthdays), how you met, contact information, etc.</li> <li>You can add notes, family members, and even how they pronounce their name.</li> </ul> </li> <li> <p>Logging Activities/Interactions:</p> <ul> <li>On a contact's page, find options to \"Log an activity,\" \"Schedule a reminder,\" or \"Add a note.\"</li> <li>Record details about conversations, meetings, or significant events.</li> <li>Set reminders to follow up or for important dates.</li> </ul> </li> <li> <p>Using the Dashboard: The dashboard usually provides an overview of upcoming reminders, recent activities, and statistics about your relationships.</p> </li> <li> <p>Journaling: Explore the journaling feature to write personal entries, which can sometimes be linked to specific contacts or events.</p> </li> <li> <p>Managing Relationships: Regularly update contact information and log interactions to keep your relationship history current.</p> </li> </ol>"},{"location":"apps/monica-crm/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Community Organizers: Keep track of interactions with supporters, volunteers, and community members.</li> <li>Networking: Manage professional contacts and remember important details about them.</li> <li>Personal Use: Strengthen relationships with friends and family by remembering important dates and conversations.</li> <li>Campaign Management: Track interactions with key stakeholders or donors (though for larger scale campaign CRM, a dedicated tool might be more suitable, Monica excels at the personal touch).</li> </ul>"},{"location":"apps/monica-crm/#editing-the-site","title":"Editing the Site","text":"<p>Monica CRM is a tool for managing personal relationships. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/monica-crm/#further-information","title":"Further Information","text":"<ul> <li>Monica CRM Official Website & Documentation: https://www.monicahq.com/ and https://www.monicahq.com/docs</li> </ul>"},{"location":"apps/n8n/","title":"n8n: Automate Your Workflows","text":"<p>n8n is a powerful workflow automation platform that allows you to connect different services and systems together without needing complex programming skills. Within Changemaker V5, it enables you to create automated processes that save time and ensure consistency across your operations.</p>"},{"location":"apps/n8n/#key-features","title":"Key Features","text":"<ul> <li>Visual Workflow Builder: Create automation flows using an intuitive drag-and-drop interface.</li> <li>Pre-built Integrations: Connect to hundreds of services including email, social media, databases, and more.</li> <li>Custom Functionality: Create your own nodes for custom integrations when needed.</li> <li>Scheduling: Run workflows on schedules or trigger them based on events.</li> <li>Error Handling: Configure what happens when steps fail, with options to retry or alert.</li> <li>Self-hosted: Keep your automation data and credentials completely under your control.</li> <li>Credential Management: Securely store and reuse authentication details for various services.</li> </ul>"},{"location":"apps/n8n/#documentation","title":"Documentation","text":"<p>For more detailed information about n8n, visit the official documentation.</p>"},{"location":"apps/n8n/#getting-started-with-n8n","title":"Getting Started with n8n","text":""},{"location":"apps/n8n/#accessing-n8n","title":"Accessing n8n","text":"<ol> <li>URL: You can access n8n locally via <code>http://localhost:5678/</code> (or your configured external URL if set up).</li> <li>Authentication: The first time you access n8n, you'll need to set up an account with admin credentials.</li> </ol>"},{"location":"apps/n8n/#basic-usage","title":"Basic Usage","text":"<ol> <li>Creating Your First Workflow:</li> <li>Click the \"+\" button in the top right to create a new workflow.</li> <li>Add a trigger node (e.g., \"Schedule\" for time-based triggers or \"Webhook\" for event-based triggers).</li> <li>Connect additional nodes for the actions you want to perform.</li> <li> <p>Save your workflow and activate it using the toggle at the top of the editor.</p> </li> <li> <p>Example Workflow: Automatic Welcome Emails</p> </li> <li>Start with a \"Webhook\" node that triggers when a new contact is added to your system.</li> <li>Connect to an \"Email\" node configured to send your welcome message.</li> <li> <p>Optionally, add a \"Slack\" or \"Rocket.Chat\" node to notify your team about the new contact.</p> </li> <li> <p>Common Use Cases:</p> </li> <li>Content Publishing: Automatically post blog updates to social media channels.</li> <li>Data Synchronization: Keep contacts in sync between different systems.</li> <li>Event Management: Send reminders before events and follow-ups afterward.</li> <li>Monitoring: Get notifications when important metrics change or thresholds are reached.</li> <li>Form Processing: Automatically handle form submissions with confirmation emails and data storage.</li> </ol>"},{"location":"apps/n8n/#integration-with-other-changemaker-services","title":"Integration with Other Changemaker Services","text":"<p>n8n works particularly well with other services in your Changemaker environment:</p> <ul> <li>NocoDB: Connect to your databases to automate record creation, updates, or data processing.</li> <li>Listmonk: Trigger email campaigns based on events or schedules.</li> <li>Gitea: Automate responses to code changes or issue creation.</li> <li>Monica CRM: Update contact records automatically when interactions occur.</li> <li>Rocket.Chat: Send automated notifications to team channels.</li> </ul>"},{"location":"apps/n8n/#advanced-features","title":"Advanced Features","text":"<ul> <li>Error Handling: Configure error workflows and retries for increased reliability.</li> <li>Splitting and Merging: Process multiple items in parallel and then combine results.</li> <li>Expressions: Use JavaScript expressions for dynamic data manipulation.</li> <li>Webhooks: Create endpoints that can receive data from external services.</li> <li>Function Nodes: Write custom JavaScript code for complex data transformations.</li> <li>Cron Jobs: Schedule workflows to run at specific intervals.</li> </ul>"},{"location":"apps/n8n/#further-information","title":"Further Information","text":"<p>For more detailed information on creating complex workflows, available integrations, and best practices, please refer to the official n8n Documentation.</p>"},{"location":"apps/nocodb/","title":"NocoDB: Open Source Airtable Alternative","text":"<p>NocoDB is a powerful open-source alternative to services like Airtable. It allows you to turn various types of SQL databases (like MySQL, PostgreSQL, SQL Server, SQLite) into a smart spreadsheet interface. This makes data management, collaboration, and even building simple applications much more accessible without extensive coding.</p>"},{"location":"apps/nocodb/#key-features","title":"Key Features","text":"<ul> <li>Spreadsheet Interface: View and manage your database tables like a spreadsheet.</li> <li>Multiple View Types: Beyond grids, create Kanban boards, forms, galleries, and calendar views from your data.</li> <li>Connect to Existing Databases: Bring your existing SQL databases into NocoDB or create new ones from scratch.</li> <li>API Access: NocoDB automatically generates REST APIs for your tables, enabling integration with other applications and services.</li> <li>Collaboration: Share bases and tables with team members with granular permission controls.</li> <li>App Store / Integrations: Extend functionality with built-in or third-party apps and integrations.</li> <li>Self-Hosted: Maintain full control over your data and infrastructure.</li> <li>No-Code/Low-Code: Build simple applications and workflows with minimal to no coding.</li> </ul>"},{"location":"apps/nocodb/#documentation","title":"Documentation","text":"<p>For more detailed information about NocoDB, visit the official documentation.</p>"},{"location":"apps/nocodb/#getting-started-with-nocodb","title":"Getting Started with NocoDB","text":""},{"location":"apps/nocodb/#accessing-nocodb","title":"Accessing NocoDB","text":"<ol> <li>URL: Access NocoDB locally via <code>http://localhost:8090/</code> (or your configured external URL).</li> <li>Initial Setup / Login: <ul> <li>The first time you access NocoDB, you might be guided through a setup process to create an initial super admin user.</li> <li>For subsequent access, you'll log in with these credentials.</li> </ul> </li> </ol>"},{"location":"apps/nocodb/#basic-workflow","title":"Basic Workflow","text":"<ol> <li> <p>Understanding the Interface:</p> <ul> <li>Workspace/Projects (or Bases): NocoDB organizes data into projects or bases, similar to Airtable bases. Each project can contain multiple tables.</li> <li>Tables: These are your database tables, displayed in a spreadsheet-like grid by default.</li> <li>Views: For each table, you can create multiple views (Grid, Form, Kanban, Gallery, Calendar) to visualize and interact with the data in different ways.</li> </ul> </li> <li> <p>Creating a New Project/Base:</p> <ul> <li>Look for an option like \"New Project\" or \"Create Base\".</li> <li>You might be asked to connect to an existing database or create a new one (often SQLite by default for ease of use if not connecting to an external DB).</li> </ul> </li> <li> <p>Creating a Table:</p> <ul> <li>Within a project, create new tables.</li> <li>Define columns (fields) for your table, specifying the data type for each (e.g., Text, Number, Date, Email, Select, Attachment, Formula, Link to Another Record).</li> </ul> </li> <li> <p>Adding and Editing Data:</p> <ul> <li>Click into cells in the grid view to add or edit data, just like a spreadsheet.</li> <li>Use forms (if you create a form view) for more structured data entry.</li> </ul> </li> <li> <p>Creating Different Views:</p> <ul> <li>For any table, click on the view switcher (often near the table name) and select \"Create View\".</li> <li>Choose the view type (e.g., Kanban).</li> <li>Configure the view (e.g., for Kanban, select the single-select field that will define the columns/stacks).</li> </ul> </li> <li> <p>Linking Tables (Relational Data):</p> <ul> <li>Use the \"Link to Another Record\" field type to create relationships between tables (e.g., link a <code>Tasks</code> table to a <code>Projects</code> table).</li> <li>This allows you to look up and display related data across tables.</li> </ul> </li> <li> <p>Using Formulas:</p> <ul> <li>Create formula fields to compute values based on other fields in the same table, similar to spreadsheet formulas.</li> </ul> </li> <li> <p>Exploring APIs:</p> <ul> <li>NocoDB automatically provides REST API endpoints for your tables. Look for an \"API Docs\" or similar section to explore these APIs, which can be used to integrate NocoDB data with other applications (e.g., your website, automation scripts).</li> </ul> </li> </ol>"},{"location":"apps/nocodb/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Content Management: Manage structured content for your website or blog (e.g., a list of events, resources, testimonials).</li> <li>Contact Management/CRM: Keep track of contacts, leads, or supporters.</li> <li>Project Management: Track tasks, projects, and deadlines.</li> <li>Inventory Management: If applicable to your campaign or project.</li> <li>Data Collection: Use NocoDB forms to collect information.</li> </ul>"},{"location":"apps/nocodb/#further-information","title":"Further Information","text":"<p>NocoDB is a feature-rich platform. For detailed guides, tutorials, API documentation, and advanced usage, refer to the official NocoDB Documentation.</p>"},{"location":"apps/ollama/","title":"Ollama: Local AI Model Server","text":"<p>Ollama is a tool that allows you to run large language models (LLMs) locally on your own server or computer. It simplifies the process of downloading, setting up, and interacting with powerful open-source AI models, providing AI capabilities without relying on third-party cloud services and ensuring data privacy.</p>"},{"location":"apps/ollama/#key-features","title":"Key Features","text":"<ul> <li>Run LLMs Locally: Host and run various open-source large language models (like Llama, Gemma, Mistral, etc.) on your own hardware.</li> <li>Simple CLI: Easy-to-use command-line interface for downloading models (<code>ollama pull</code>), running them (<code>ollama run</code>), and managing them (<code>ollama list</code>).</li> <li>API Server: Ollama serves models through a local API, allowing other applications (like OpenWebUI) to interact with them.</li> <li>Data Privacy: Since models run locally, your data doesn't leave your server when you interact with them.</li> <li>Growing Model Library: Access a growing library of popular open-source models.</li> <li>Customization: Create custom model files (Modelfiles) to tailor model behavior.</li> </ul>"},{"location":"apps/ollama/#documentation","title":"Documentation","text":"<p>For more detailed information about Ollama, visit the official repository.</p>"},{"location":"apps/ollama/#getting-started-with-ollama-within-changemaker","title":"Getting Started with Ollama (within Changemaker)","text":"<p>Ollama itself is primarily a command-line tool and an API server. You typically interact with it via a terminal or through a UI like OpenWebUI.</p>"},{"location":"apps/ollama/#managing-ollama-via-terminal-eg-in-code-server","title":"Managing Ollama via Terminal (e.g., in Code Server)","text":"<ol> <li> <p>Access a Terminal: </p> <ul> <li>Open the integrated terminal in Code Server.</li> <li>Alternatively, SSH directly into your Changemaker server.</li> </ul> </li> <li> <p>Common Ollama Commands:</p> <ul> <li> <p>List Downloaded Models: See which models you currently have. <pre><code>docker exec -it ollama-changemaker ollama list\n</code></pre> (The <code>docker exec -it ollama-changemaker</code> part is necessary if Ollama is running in a Docker container named <code>ollama-changemaker</code>, which is common. If Ollama is installed directly on the host, you'd just run <code>ollama list</code>.)</p> </li> <li> <p>Pull (Download) a New Model: Download a model from the Ollama library. Replace <code>gemma:2b</code> with the desired model name and tag. <pre><code>docker exec -it ollama-changemaker ollama pull gemma:2b \n</code></pre> (Example: <code>ollama pull llama3</code>, <code>ollama pull mistral</code>)</p> </li> <li> <p>Run a Model (Interactive Chat in Terminal): Chat directly with a model in the terminal. <pre><code>docker exec -it ollama-changemaker ollama run gemma:2b\n</code></pre> (Press <code>Ctrl+D</code> or type <code>/bye</code> to exit the chat.)</p> </li> <li> <p>Remove a Model: Delete a downloaded model to free up space. <pre><code>docker exec -it ollama-changemaker ollama rm gemma:2b\n</code></pre></p> </li> </ul> </li> </ol>"},{"location":"apps/ollama/#interacting-with-ollama-via-openwebui","title":"Interacting with Ollama via OpenWebUI","text":"<p>For a more user-friendly chat experience, use OpenWebUI, which connects to your Ollama service. See the <code>apps/openwebui.md</code> documentation for details.</p>"},{"location":"apps/ollama/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Powering OpenWebUI: Ollama is the backend engine that OpenWebUI uses to provide its chat interface.</li> <li>AI-Assisted Content Creation: Generate text, summaries, ideas, or code snippets with privacy.</li> <li>Custom AI Applications: Developers can build custom applications that leverage the Ollama API for various AI tasks.</li> <li>Offline AI Capabilities: Use AI models even without an active internet connection (once models are downloaded).</li> </ul>"},{"location":"apps/ollama/#editing-the-site","title":"Editing the Site","text":"<p>Ollama is an AI model server. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/ollama/#further-information","title":"Further Information","text":"<ul> <li>Ollama Official Website: https://ollama.ai/</li> <li>Ollama Documentation: https://ollama.ai/docs</li> <li>Ollama GitHub: https://github.com/ollama/ollama</li> <li>The existing <code>ollama.md</code> at the root of the <code>docs</code> folder in your project might also contain specific setup notes for your Changemaker instance.</li> </ul>"},{"location":"apps/openwebui/","title":"OpenWebUI: Chat Interface for Ollama","text":"<p>OpenWebUI provides a user-friendly, web-based chat interface for interacting with local AI models run by Ollama. It makes leveraging the power of large language models (LLMs) accessible to users who may not be comfortable with command-line interfaces, offering a familiar chat experience.</p>"},{"location":"apps/openwebui/#key-features","title":"Key Features","text":"<ul> <li>Chat Interface: Intuitive, ChatGPT-like interface for interacting with Ollama models.</li> <li>Model Selection: Easily switch between different AI models you have downloaded via Ollama.</li> <li>Conversation History: Keeps track of your chats.</li> <li>Responsive Design: Usable on various devices.</li> <li>Self-Hosted: Runs locally as part of your Changemaker suite, ensuring data privacy.</li> <li>Markdown Support: Renders model responses that include Markdown for better formatting.</li> </ul>"},{"location":"apps/openwebui/#documentation","title":"Documentation","text":"<p>For more detailed information about OpenWebUI, visit the official documentation.</p>"},{"location":"apps/openwebui/#getting-started-with-openwebui","title":"Getting Started with OpenWebUI","text":""},{"location":"apps/openwebui/#prerequisites","title":"Prerequisites","text":"<ul> <li>Ollama Must Be Running: OpenWebUI is an interface for Ollama. Ensure your Ollama service is running and you have downloaded some models (e.g., <code>ollama pull llama3</code>).</li> </ul>"},{"location":"apps/openwebui/#accessing-openwebui","title":"Accessing OpenWebUI","text":"<ol> <li>URL: Access OpenWebUI locally via <code>http://localhost:3005/</code> (or your configured external URL).</li> <li>Account Creation (First Time): The first time you access OpenWebUI, you'll likely need to sign up or create an admin account for the interface itself.</li> </ol>"},{"location":"apps/openwebui/#basic-usage","title":"Basic Usage","text":"<ol> <li>Log In: Sign in with your OpenWebUI credentials.</li> <li>Select a Model: <ul> <li>There should be an option (often a dropdown menu) to select which Ollama model you want to chat with. This list will populate based on the models you have pulled using the Ollama service.</li> <li>If you don't see any models, you may need to go to a terminal (e.g., in Code Server or directly on your server) and run <code>ollama list</code> to see available models or <code>ollama pull <modelname></code> (e.g., <code>ollama pull gemma:2b</code>) to download a new one.</li> </ul> </li> <li>Start Chatting: <ul> <li>Type your prompt or question into the message box at the bottom of the screen and press Enter or click the send button.</li> <li>The selected Ollama model will process your input and generate a response, which will appear in the chat window.</li> </ul> </li> <li>Manage Conversations: You can typically start new chats or revisit previous conversations from a sidebar.</li> </ol>"},{"location":"apps/openwebui/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Content Generation: Draft blog posts, newsletter content, social media updates, or documentation.</li> <li>Brainstorming: Generate ideas for campaigns, projects, or problem-solving.</li> <li>Research Assistance: Ask questions and get summaries on various topics (ensure you verify information from LLMs).</li> <li>Drafting Responses: Help formulate replies to emails or messages.</li> <li>Learning & Exploration: Experiment with different AI models and their capabilities.</li> </ul>"},{"location":"apps/openwebui/#editing-the-site","title":"Editing the Site","text":"<p>OpenWebUI is a tool for interacting with AI models. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/openwebui/#further-information","title":"Further Information","text":"<ul> <li>OpenWebUI Official Documentation/GitHub: https://docs.openwebui.com/ or their GitHub repository (often linked from the UI itself).</li> <li>Ollama Documentation: https://ollama.ai/docs (for information on managing Ollama and downloading models).</li> </ul>"},{"location":"apps/portainer/","title":"Portainer: Docker Container Management UI","text":"<p>Portainer is a lightweight management UI that allows you to easily manage your Docker environments (or other container orchestrators like Kubernetes). Changemaker V5 runs its applications as Docker containers, and Portainer provides a visual interface to see, manage, and troubleshoot these containers.</p>"},{"location":"apps/portainer/#key-features","title":"Key Features","text":"<ul> <li>Container Management: View, start, stop, restart, remove, and inspect Docker containers.</li> <li>Image Management: Pull, remove, and inspect Docker images.</li> <li>Volume Management: Manage Docker volumes used for persistent storage.</li> <li>Network Management: Manage Docker networks.</li> <li>Stacks/Compose: Deploy and manage multi-container applications defined in Docker Compose files (stacks).</li> <li>Logs & Stats: View container logs and resource usage statistics (CPU, memory).</li> <li>User-Friendly Interface: Simplifies Docker management for users who may not be comfortable with the command line.</li> <li>Multi-Environment Support: Can manage multiple Docker hosts or Kubernetes clusters (though in Changemaker, it's typically managing the local Docker environment).</li> </ul>"},{"location":"apps/portainer/#documentation","title":"Documentation","text":"<p>For more detailed information about Portainer, visit the official documentation.</p>"},{"location":"apps/portainer/#getting-started-with-portainer","title":"Getting Started with Portainer","text":""},{"location":"apps/portainer/#accessing-portainer","title":"Accessing Portainer","text":"<ol> <li>URL: Access Portainer locally via <code>http://localhost:9002/</code> (or your configured external URL).</li> <li>Initial Setup/Login: <ul> <li>The first time you access Portainer, you will need to set up an administrator account (username and password).</li> <li>You will then connect Portainer to the Docker environment it should manage. For Changemaker, this is usually the local Docker socket.</li> </ul> </li> </ol>"},{"location":"apps/portainer/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Dashboard: The main dashboard provides an overview of your Docker environment (number of containers, volumes, images, etc.).</p> </li> <li> <p>Containers List: </p> <ul> <li>Navigate to \"Containers\" from the sidebar.</li> <li>You'll see a list of all running and stopped containers (e.g., <code>code-server</code>, <code>flatnotes</code>, <code>listmonk</code>, etc., that make up Changemaker).</li> <li>Actions: For each container, you can perform actions like:<ul> <li>Logs: View real-time logs.</li> <li>Inspect: See detailed configuration and state.</li> <li>Stats: View resource usage.</li> <li>Console: Connect to the container's terminal (if supported by the container).</li> <li>Stop/Start/Restart/Remove.</li> </ul> </li> </ul> </li> <li> <p>Images List: </p> <ul> <li>Navigate to \"Images\" to see all Docker images pulled to your server.</li> <li>You can pull new images from Docker Hub or other registries, or remove unused images.</li> </ul> </li> <li> <p>Volumes List: </p> <ul> <li>Navigate to \"Volumes\" to see Docker volumes, which are used by Changemaker apps to store persistent data (e.g., your notes in Flatnotes, your Listmonk database).</li> </ul> </li> <li> <p>Stacks (Docker Compose):</p> <ul> <li>Navigate to \"Stacks.\"</li> <li>Changemaker itself is likely deployed as a stack using its <code>docker-compose.yml</code> file. You might see it listed here.</li> <li>You can add new stacks (deploy other Docker Compose applications) or manage existing ones.</li> </ul> </li> </ol>"},{"location":"apps/portainer/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Monitoring Application Status: Quickly see if all Changemaker application containers are running.</li> <li>Viewing Logs: Troubleshoot issues by checking the logs of specific application containers.</li> <li>Restarting Applications: If an application becomes unresponsive, you can try restarting its container via Portainer.</li> <li>Resource Management: Check CPU and memory usage of containers if you suspect performance issues.</li> <li>Advanced Management: For users comfortable with Docker, Portainer provides an easier interface for tasks that would otherwise require command-line operations.</li> </ul>"},{"location":"apps/portainer/#editing-the-site","title":"Editing the Site","text":"<p>Portainer is for managing the Docker containers that run the applications. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/portainer/#further-information","title":"Further Information","text":"<ul> <li>Portainer Official Website: https://www.portainer.io/</li> <li>Portainer Documentation: https://docs.portainer.io/</li> </ul>"},{"location":"apps/rocketchat/","title":"Rocket.Chat: Team & Community Collaboration Platform","text":"<p>Rocket.Chat is a powerful, open-source team collaboration platform. It offers a wide range of communication tools, including real-time chat, channels, direct messaging, video conferencing, and file sharing. It's designed for teams and communities to communicate and collaborate effectively in a self-hosted environment.</p>"},{"location":"apps/rocketchat/#key-features","title":"Key Features","text":"<ul> <li>Real-time Chat: Public channels, private groups, and direct messages.</li> <li>File Sharing: Share documents, images, and other files.</li> <li>Voice and Video Conferencing: Integrated audio and video calls.</li> <li>Guest Access: Allow external users to participate in specific channels.</li> <li>Integrations: Connect with other tools and services through bots and APIs.</li> <li>Customization: Themes, permissions, and extensive administrative controls.</li> <li>Self-Hosted: Full data sovereignty and control over user privacy.</li> <li>Mobile and Desktop Apps: Access Rocket.Chat from various devices.</li> </ul>"},{"location":"apps/rocketchat/#documentation","title":"Documentation","text":"<p>For more detailed information about Rocket.Chat, visit the official documentation.</p>"},{"location":"apps/rocketchat/#getting-started-with-rocketchat","title":"Getting Started with Rocket.Chat","text":""},{"location":"apps/rocketchat/#accessing-rocketchat","title":"Accessing Rocket.Chat","text":"<ol> <li>URL: Access Rocket.Chat locally via <code>http://localhost:3004/</code> (or your configured external URL).</li> <li>Account Registration/Login: <ul> <li>The first time you access it, you or an administrator will need to set up an admin account and configure the server.</li> <li>Users will then need to register for an account or be invited by an admin.</li> </ul> </li> </ol>"},{"location":"apps/rocketchat/#basic-usage","title":"Basic Usage","text":"<ol> <li> <p>Interface Overview:</p> <ul> <li>Channels/Rooms: The main area for discussions. Channels can be public or private.</li> <li>Direct Messages: For one-on-one conversations.</li> <li>User List: See who is online and available.</li> <li>Search: Find messages, users, or channels.</li> </ul> </li> <li> <p>Joining Channels:</p> <ul> <li>Browse the directory of public channels or be invited to private ones.</li> </ul> </li> <li> <p>Sending Messages:</p> <ul> <li>Type your message in the input box at the bottom of a channel or direct message.</li> <li>Use Markdown for formatting, emojis, and @mentions to notify users.</li> </ul> </li> <li> <p>Starting a Video/Audio Call: Look for the call icons within a channel or direct message to start a voice or video call.</p> </li> <li> <p>Managing Your Profile: Update your profile picture, status, and notification preferences.</p> </li> <li> <p>Administration (For Admins):</p> <ul> <li>Access the administration panel to manage users, permissions, channels, integrations, and server settings.</li> </ul> </li> </ol>"},{"location":"apps/rocketchat/#use-cases-within-changemaker","title":"Use Cases within Changemaker","text":"<ul> <li>Internal Team Communication: A central place for your campaign team or organization members to chat, share files, and coordinate efforts.</li> <li>Community Building: Create a private or public chat community for your supporters or users.</li> <li>Project Collaboration: Dedicate channels to specific projects or tasks.</li> <li>Support Channel: Offer a real-time support channel for your users or community members.</li> <li>Alternative to Slack/Discord: A self-hosted option providing similar functionality with more control.</li> </ul>"},{"location":"apps/rocketchat/#editing-the-site","title":"Editing the Site","text":"<p>Rocket.Chat is a communication platform. It is not used for editing this documentation site. Site editing is done via Code Server.</p>"},{"location":"apps/rocketchat/#further-information","title":"Further Information","text":"<ul> <li>Rocket.Chat Official Website: https://www.rocket.chat/</li> <li>Rocket.Chat Documentation: https://docs.rocket.chat/</li> </ul>"},{"location":"blog/","title":"Blog","text":""},{"location":"blog/2025/03/06/testing/","title":"Testing","text":""},{"location":"blog/2025/03/06/testing/#hello-world-mk","title":"hello world mk","text":""},{"location":"guides/","title":"Guides","text":"<p>The following guides to properly configure your site. </p>"},{"location":"guides/authoring-content/","title":"Authoring Content with Markdown and MkDocs Material","text":"<p>This guide provides a brief overview of writing content using Markdown and leveraging the styling capabilities of the MkDocs Material theme for your Changemaker documentation site.</p>"},{"location":"guides/authoring-content/#markdown-basics","title":"Markdown Basics","text":"<p>Markdown is a lightweight markup language with plain-text formatting syntax. It's designed to be easy to read and write.</p>"},{"location":"guides/authoring-content/#headings","title":"Headings","text":"<pre><code># Heading 1\n## Heading 2\n### Heading 3\n</code></pre>"},{"location":"guides/authoring-content/#emphasis","title":"Emphasis","text":"<pre><code>*Italic text* or _Italic text_\n**Bold text** or __Bold text__\n~~Strikethrough text~~\n</code></pre>"},{"location":"guides/authoring-content/#lists","title":"Lists","text":"<p>Ordered List: <pre><code>1. First item\n2. Second item\n3. Third item\n</code></pre></p> <p>Unordered List: <pre><code>- Item A\n- Item B\n - Sub-item B1\n - Sub-item B2\n* Item C\n</code></pre></p>"},{"location":"guides/authoring-content/#links","title":"Links","text":"<pre><code>[Link Text](https://www.example.com)\n[Link with Title](https://www.example.com \"An example link\")\n[Relative Link to another page](../apps/code-server.md)\n</code></pre>"},{"location":"guides/authoring-content/#images","title":"Images","text":"<p><pre><code>\n</code></pre> Place your images in the <code>mkdocs/docs/assets/images/</code> directory (or create it if it doesn't exist) and reference them accordingly.</p>"},{"location":"guides/authoring-content/#code-blocks","title":"Code Blocks","text":"<p>Inline Code: Use backticks: <code>this is inline code</code>.</p> <p>Fenced Code Blocks (Recommended for multi-line code): Specify the language for syntax highlighting.</p> <pre><code>```python\ndef hello_world():\n print(\"Hello, world!\")\n```\n\n```html\n<h1>Hello</h1>\n```\n</code></pre>"},{"location":"guides/authoring-content/#blockquotes","title":"Blockquotes","text":"<pre><code>> This is a blockquote.\n> It can span multiple lines.\n</code></pre>"},{"location":"guides/authoring-content/#horizontal-rule","title":"Horizontal Rule","text":"<pre><code>---\n***\n</code></pre>"},{"location":"guides/authoring-content/#tables","title":"Tables","text":"<pre><code>| Header 1 | Header 2 | Header 3 |\n| :------- | :------: | -------: |\n| Align L | Center | Align R |\n| Cell 1 | Cell 2 | Cell 3 |\n</code></pre>"},{"location":"guides/authoring-content/#mkdocs-material-theme-features","title":"MkDocs Material Theme Features","text":"<p>MkDocs Material provides many enhancements and custom syntax options on top of standard Markdown.</p>"},{"location":"guides/authoring-content/#admonitions-call-outs","title":"Admonitions (Call-outs)","text":"<p>These are great for highlighting information.</p> <pre><code>!!! note\n This is a note.\n\n!!! tip \"Optional Title\"\n Here's a helpful tip!\n\n!!! warning\n Be careful with this action.\n\n!!! danger \"Critical Alert\"\n This is a critical warning.\n\n!!! abstract \"Summary\"\n This is an abstract or summary.\n</code></pre> <p>Supported types include: <code>note</code>, <code>abstract</code>, <code>info</code>, <code>tip</code>, <code>success</code>, <code>question</code>, <code>warning</code>, <code>failure</code>, <code>danger</code>, <code>bug</code>, <code>example</code>, <code>quote</code>.</p>"},{"location":"guides/authoring-content/#code-blocks-with-titles-and-line-numbers","title":"Code Blocks with Titles and Line Numbers","text":"<p>Your <code>mkdocs.yml</code> is configured for <code>pymdownx.highlight</code> which supports this.</p> <pre><code>```python title=\"my_script.py\" linenums=\"1\"\nprint(\"Hello from Python\")\n```\n</code></pre>"},{"location":"guides/authoring-content/#emojis","title":"Emojis","text":"<p>Your <code>mkdocs.yml</code> has <code>pymdownx.emoji</code> enabled.</p> <p><pre><code>:smile: :rocket: :warning:\n</code></pre> See the MkDocs Material Emoji List for available emojis.</p>"},{"location":"guides/authoring-content/#footnotes","title":"Footnotes","text":"<p>Your <code>mkdocs.yml</code> has <code>footnotes</code> enabled.</p> <pre><code>This is some text with a footnote.[^1]\n\n[^1]: This is the footnote definition.\n</code></pre>"},{"location":"guides/authoring-content/#content-tabs","title":"Content Tabs","text":"<p>Group related content under tabs.</p> <pre><code>=== \"Tab 1 Title\"\n Content for tab 1 (can be Markdown)\n\n=== \"Tab 2 Title\"\n Content for tab 2\n\n ```python\n # Code blocks work here too\n print(\"Hello from Tab 2\")\n ```\n</code></pre>"},{"location":"guides/authoring-content/#task-lists","title":"Task Lists","text":"<pre><code>- [x] Completed task\n- [ ] Incomplete task\n- [ ] Another task\n</code></pre>"},{"location":"guides/authoring-content/#styling-with-attributes-attr_list","title":"Styling with Attributes (<code>attr_list</code>)","text":"<p>You can add CSS classes or IDs to elements.</p> <p><pre><code>This is a paragraph with a custom class.\n{: .my-custom-class }\n\n## A Heading with an ID {#custom-heading-id}\n</code></pre> This is useful for applying custom CSS from your <code>extra.css</code> file.</p>"},{"location":"guides/authoring-content/#buttons","title":"Buttons","text":"<p>MkDocs Material has a nice way to create buttons from links:</p> <pre><code>[This is a button link](https://example.com){ .md-button }\n[Primary button](https://example.com){ .md-button .md-button--primary }\n[Another button](another-page.md){ .md-button }\n</code></pre>"},{"location":"guides/authoring-content/#editing-workflow","title":"Editing Workflow","text":"<ol> <li>Use Code Server: Access Code Server from your Changemaker dashboard.</li> <li>Navigate: Open the <code>mkdocs/docs/</code> directory.</li> <li>Create or Edit: Create new <code>.md</code> files or edit existing ones.</li> <li>Save: Save your changes (<code>Ctrl+S</code> or <code>Cmd+S</code>).</li> <li>Preview: <ul> <li>If you have <code>mkdocs serve</code> running (either locally on your machine if developing there, or in a terminal within Code Server pointing to the <code>mkdocs</code> directory), your documentation site (usually at <code>http://localhost:8000</code> or <code>http://127.0.0.1:8000</code>) will auto-reload.</li> <li>Alternatively, you can use VS Code extensions like \"Markdown Preview Enhanced\" within Code Server for a live preview pane.</li> </ul> </li> </ol>"},{"location":"guides/authoring-content/#further-reading","title":"Further Reading","text":"<ul> <li>MkDocs Material Reference: The official documentation for all features.</li> <li>Markdown Guide: For general Markdown syntax.</li> </ul> <p>This guide should give you a solid start. Explore the MkDocs Material documentation for even more advanced features like diagrams, math formulas, and more complex page layouts.</p>"},{"location":"guides/ollama-vscode/","title":"Using Ollama Models in VS Code (Code-Server)","text":"<p>You can integrate Ollama models with your VS Code environment (code-server) in several ways:</p>"},{"location":"guides/ollama-vscode/#option-1-install-a-vs-code-extension","title":"Option 1: Install a VS Code Extension","text":"<p>The easiest approach is to install a VS Code extension that connects to Ollama:</p> <ol> <li>In code-server (your VS Code interface), open the Extensions panel</li> <li>Search for \"Continue\" or \"Ollama\" and install an extension like \"Continue\" or \"Ollama Chat\"</li> <li>Configure the extension to connect to Ollama using the internal Docker network URL: <pre><code>http://ollama-changemaker:11434\n</code></pre></li> </ol>"},{"location":"guides/ollama-vscode/#option-2-use-the-api-directly-from-the-vs-code-terminal","title":"Option 2: Use the API Directly from the VS Code Terminal","text":"<p>Since the Docker CLI isn't available inside the code-server container, we can interact with the Ollama API directly using curl:</p> <pre><code># List available models\ncurl http://ollama-changemaker:11434/api/tags\n\n# Generate text with a model\ncurl -X POST http://ollama-changemaker:11434/api/generate -d '{\n \"model\": \"llama3\",\n \"prompt\": \"Write a function to calculate Fibonacci numbers\"\n}'\n\n# Pull a new model\ncurl -X POST http://ollama-changemaker:11434/api/pull -d '{\n \"name\": \"mistral:7b\"\n}'\n</code></pre>"},{"location":"guides/ollama-vscode/#option-3-write-code-that-uses-the-ollama-api","title":"Option 3: Write Code That Uses the Ollama API","text":"<p>You can write scripts that connect to Ollama's API. For example, in Python:</p> <pre><code>import requests\n\ndef ask_ollama(prompt, model=\"llama3\"):\n response = requests.post(\n \"http://ollama-changemaker:11434/api/generate\",\n json={\"model\": model, \"prompt\": prompt}\n )\n return response.json()[\"response\"]\n\n# Example usage\nresult = ask_ollama(\"What is the capital of France?\")\nprint(result)\n\n# List available models\ndef list_models():\n response = requests.get(\"http://ollama-changemaker:11434/api/tags\")\n models = response.json()[\"models\"]\n return [model[\"name\"] for model in models]\n\n# Pull a new model\ndef pull_model(model_name):\n response = requests.post(\n \"http://ollama-changemaker:11434/api/pull\",\n json={\"name\": model_name}\n )\n # This will take time for large models\n return response.status_code\n</code></pre>"},{"location":"guides/ollama-vscode/#from-your-host-machines-terminal-not-vs-code","title":"From Your Host Machine's Terminal (Not VS Code)","text":"<p>If you want to use Docker commands, you'll need to run them from your host machine's terminal, not from inside VS Code:</p> <pre><code># List available models\ndocker exec -it ollama-changemaker ollama list\n\n# Pull models\ndocker exec -it ollama-changemaker ollama pull llama3\ndocker exec -it ollama-changemaker ollama pull mistral:7b\ndocker exec -it ollama-changemaker ollama pull codellama\n</code></pre> <p>The key is using the Docker network hostname <code>ollama-changemaker</code> with port <code>11434</code> as your connection point, which should be accessible from your code-server container since they're on the same network.</p>"},{"location":"blog/archive/2025/","title":"2025","text":""}]} |