From 1e8425c98d99060e6e514c58970fa71760ca144f Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Tue, 17 Feb 2026 07:58:44 +0000 Subject: [PATCH] Add README files for various applications: Decidim, Discourse, Example Admin, Example App, Ghost, Immich, Keila, Lemmy, Listmonk, Loomio, Matrix, Memcached, MySQL, Open WebUI, OpenProject, PostgreSQL, Redis, and vLLM --- decidim/README.md | 35 ++++++++++++++++++++++++++++++++ discourse/README.md | 35 ++++++++++++++++++++++++++++++++ example-admin/README.md | 9 +++++++++ example-app/README.md | 10 ++++++++++ ghost/README.md | 33 +++++++++++++++++++++++++++++++ immich/README.md | 44 ++++++++++++++++++++++++++++++++++++----- keila/README.md | 33 +++++++++++++++++++++++++++++++ lemmy/README.md | 41 ++++++++++++++++++++++++++++++++++++++ listmonk/README.md | 31 +++++++++++++++++++++++++++++ loomio/README.md | 34 +++++++++++++++++++++++++++++++ matrix/README.md | 38 +++++++++++++++++++++++++++++++++++ memcached/README.md | 19 ++++++++++++++++++ mysql/README.md | 19 ++++++++++++++++++ open-webui/README.md | 33 +++++++++++++++++++++++++++++++ openproject/README.md | 34 +++++++++++++++++++++++++++++++ postgres/README.md | 20 ++++++++++++++++++- redis/README.md | 17 ++++++++++++++++ vllm/README.md | 29 +++++++++++++++++++++++++++ 18 files changed, 508 insertions(+), 6 deletions(-) create mode 100644 decidim/README.md create mode 100644 discourse/README.md create mode 100644 example-admin/README.md create mode 100644 example-app/README.md create mode 100644 ghost/README.md create mode 100644 keila/README.md create mode 100644 lemmy/README.md create mode 100644 listmonk/README.md create mode 100644 loomio/README.md create mode 100644 matrix/README.md create mode 100644 memcached/README.md create mode 100644 mysql/README.md create mode 100644 open-webui/README.md create mode 100644 openproject/README.md create mode 100644 redis/README.md create mode 100644 vllm/README.md diff --git a/decidim/README.md b/decidim/README.md new file mode 100644 index 0000000..8a01d5b --- /dev/null +++ b/decidim/README.md @@ -0,0 +1,35 @@ +# Decidim + +Decidim is a participatory democracy framework for cities and organizations. Built in Ruby on Rails, it enables citizen participation through proposals, debates, and voting. Includes Sidekiq for background job processing. + +## Dependencies + +- **PostgreSQL** - Database for storing participatory processes and user data +- **Redis** - Used for Sidekiq background job processing + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Decidim will be accessible (default: `decidim.{your-cloud-domain}`) +- **siteName** - Display name for your platform (default: `Decidim`) +- **systemAdminEmail** - System admin email (defaults to your operator email) +- **storage** - Persistent volume size (default: `20Gi`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Decidim will be available at: +- `https://decidim.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add decidim + wild app deploy decidim + ``` + +2. Log in with the system admin credentials configured during setup + +3. Create your first organization and configure participatory processes diff --git a/discourse/README.md b/discourse/README.md new file mode 100644 index 0000000..18fcfb4 --- /dev/null +++ b/discourse/README.md @@ -0,0 +1,35 @@ +# Discourse + +Discourse is a modern, open-source discussion platform designed for online communities and forums. + +## Dependencies + +- **PostgreSQL** - Database for storing application data +- **Redis** - Used for caching and background jobs + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Discourse will be accessible (default: `discourse.{your-cloud-domain}`) +- **adminEmail** - Admin account email (defaults to your operator email) +- **adminUsername** - Admin account username (default: `admin`) +- **siteName** - Your community name (default: `Community`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Discourse will be available at: +- `https://discourse.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add discourse + wild app deploy discourse + ``` + +2. Log in with the admin credentials configured during setup + +3. Complete the setup wizard to configure your community diff --git a/example-admin/README.md b/example-admin/README.md new file mode 100644 index 0000000..24a8a60 --- /dev/null +++ b/example-admin/README.md @@ -0,0 +1,9 @@ +# Example Admin App + +An example application deployed with internal-only access. This app is useful for testing Wild Cloud's internal ingress and TLS configuration. + +The app uses the internal wildcard TLS certificate and is only accessible within your local network. + +## Access + +After deployment, the app will be available at an internal domain on your Wild Cloud instance. diff --git a/example-app/README.md b/example-app/README.md new file mode 100644 index 0000000..040e2ad --- /dev/null +++ b/example-app/README.md @@ -0,0 +1,10 @@ +# Example App + +An example application deployed with public access. This app is useful for testing Wild Cloud's public ingress, TLS, and external DNS configuration. + +The app uses the public wildcard TLS certificate and is accessible from the internet. + +## Access + +After deployment, the app will be available at: +- `https://example-app.{your-cloud-domain}` diff --git a/ghost/README.md b/ghost/README.md new file mode 100644 index 0000000..967815c --- /dev/null +++ b/ghost/README.md @@ -0,0 +1,33 @@ +# Ghost + +Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It provides a clean writing experience with built-in membership and subscription features. + +## Dependencies + +- **MySQL** - Database for storing content and configuration + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Ghost will be accessible (default: `ghost.{your-cloud-domain}`) +- **blogTitle** - Your blog's title (default: `My Blog`) +- **adminEmail** - Admin account email (defaults to your operator email) +- **storage** - Persistent volume size for content (default: `10Gi`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Ghost will be available at: +- `https://ghost.{your-cloud-domain}` - Public blog +- `https://ghost.{your-cloud-domain}/ghost` - Admin panel + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add ghost + wild app deploy ghost + ``` + +2. Navigate to the admin panel and create your first post diff --git a/immich/README.md b/immich/README.md index 83d15f5..bc529b1 100644 --- a/immich/README.md +++ b/immich/README.md @@ -1,7 +1,41 @@ -# Immich App +# Immich -## To Do +Immich is a self-hosted photo and video backup solution that allows you to store, manage, and share your media files securely. It provides a mobile-first experience similar to Google Photos. -- We need a full uninstall script. -- We need full backup and restore scripts. -- When recreating the app (uninstall/reinstall), db-init needs to re-run (currently the previous one blocks). +## Dependencies + +- **PostgreSQL** - Database for storing metadata and search indexes +- **Redis** - Used for caching and background job queuing + +## Components + +Immich runs two services: + +- **Server** - Main API and web server +- **Machine Learning** - Handles facial recognition and smart search + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Immich will be accessible (default: `immich.{your-cloud-domain}`) +- **storage** - Persistent volume for photos and videos (default: `250Gi`) +- **cacheStorage** - Persistent volume for ML cache (default: `10Gi`) +- **timezone** - Server timezone (default: `UTC`) + +## Access + +After deployment, Immich will be available at: +- `https://immich.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add immich + wild app deploy immich + ``` + +2. Create your account through the web interface + +3. Download the Immich mobile app and connect it to your server for automatic photo backup diff --git a/keila/README.md b/keila/README.md new file mode 100644 index 0000000..6134dd0 --- /dev/null +++ b/keila/README.md @@ -0,0 +1,33 @@ +# Keila + +Keila is an open-source email marketing platform that allows you to send newsletters and manage mailing lists with privacy and control. + +## Dependencies + +- **PostgreSQL** - Database for storing contacts and campaigns + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Keila will be accessible (default: `keila.{your-cloud-domain}`) +- **adminUser** - Admin account email (default: `admin@{your-cloud-domain}`) +- **disableRegistration** - Whether to allow new signups (default: `true`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Keila will be available at: +- `https://keila.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add keila + wild app deploy keila + ``` + +2. Log in with the admin credentials configured during setup + +3. Configure your SMTP sender and create your first campaign diff --git a/lemmy/README.md b/lemmy/README.md new file mode 100644 index 0000000..645b554 --- /dev/null +++ b/lemmy/README.md @@ -0,0 +1,41 @@ +# Lemmy + +Lemmy is a selfhosted social link aggregation and discussion platform. It is an open-source alternative to Reddit, designed for the fediverse. + +## Dependencies + +- **PostgreSQL** - Database for storing communities, posts, and comments + +## Components + +Lemmy runs three separate services: + +- **Backend** - Rust API server handling federation and data +- **UI** - Web frontend for browsing and interacting +- **pict-rs** - Image hosting and processing service + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Lemmy will be accessible (default: `lemmy.{your-cloud-domain}`) +- **storage** - Persistent volume for application data (default: `10Gi`) +- **pictrsStorage** - Persistent volume for uploaded images (default: `50Gi`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Lemmy will be available at: +- `https://lemmy.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add lemmy + wild app deploy lemmy + ``` + +2. Create your admin account through the web interface + +3. Set up your first community and customize your instance settings diff --git a/listmonk/README.md b/listmonk/README.md new file mode 100644 index 0000000..abd7064 --- /dev/null +++ b/listmonk/README.md @@ -0,0 +1,31 @@ +# Listmonk + +Listmonk is a standalone, self-hosted newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. + +## Dependencies + +- **PostgreSQL** - Database for storing subscribers and campaigns + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Listmonk will be accessible (default: `listmonk.{your-cloud-domain}`) +- **storage** - Persistent volume size (default: `1Gi`) + +## Access + +After deployment, Listmonk will be available at: +- `https://listmonk.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add listmonk + wild app deploy listmonk + ``` + +2. Log in to the admin interface and configure your SMTP settings for sending emails + +3. Create your first mailing list and start adding subscribers diff --git a/loomio/README.md b/loomio/README.md new file mode 100644 index 0000000..5986ef9 --- /dev/null +++ b/loomio/README.md @@ -0,0 +1,34 @@ +# Loomio + +Loomio is a collaborative decision-making tool that makes it easy for groups to make decisions together. It supports proposals, polls, and structured discussions. + +## Dependencies + +- **PostgreSQL** - Database for storing groups, discussions, and decisions +- **Redis** - Used for caching and background jobs + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where Loomio will be accessible (default: `loomio.{your-cloud-domain}`) +- **appName** - Display name for your instance (default: `Loomio`) +- **adminEmail** - Admin contact email (defaults to your operator email) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, Loomio will be available at: +- `https://loomio.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add loomio + wild app deploy loomio + ``` + +2. Create your account and set up your first group + +3. Invite members and start a discussion or poll diff --git a/matrix/README.md b/matrix/README.md new file mode 100644 index 0000000..656e557 --- /dev/null +++ b/matrix/README.md @@ -0,0 +1,38 @@ +# Matrix (Synapse) + +Matrix is an open standard for secure, decentralized, real-time communication. This deploys the Synapse homeserver for self-hosted Matrix federation and messaging. + +## Dependencies + +- **PostgreSQL** - Database for storing messages and account data +- **Redis** - Used for inter-worker communication + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where the Synapse web client will be accessible (default: `matrix.{your-cloud-domain}`) +- **serverName** - Your Matrix server identity, used in user IDs like `@user:{serverName}` (default: `{your-cloud-domain}`) +- **enableRegistration** - Whether to allow public account creation (default: `false`) +- **storage** - Persistent volume for Synapse data (default: `50Gi`) +- **mediaStorage** - Persistent volume for uploaded media (default: `100Gi`) +- **SMTP** - Email delivery settings inherited from your Wild Cloud instance + +## Access + +After deployment, the Synapse homeserver will be available at: +- `https://matrix.{your-cloud-domain}` + +Connect using any Matrix client (Element, FluffyChat, etc.) with your server name. + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add matrix + wild app deploy matrix + ``` + +2. Use the registration shared secret (in your `secrets.yaml`) to create your first admin account, or enable public registration temporarily + +3. Connect with a Matrix client and start messaging diff --git a/memcached/README.md b/memcached/README.md new file mode 100644 index 0000000..3765e2d --- /dev/null +++ b/memcached/README.md @@ -0,0 +1,19 @@ +# Memcached + +Memcached is an in-memory key-value store for small chunks of arbitrary data, commonly used as a cache layer to speed up applications. + +## Dependencies + +None. Memcached is a standalone infrastructure service. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **memoryLimit** - Maximum memory usage (default: `64m`) +- **maxConnections** - Maximum concurrent connections (default: `1024`) +- **replicas** - Number of instances (default: `1`) + +## Usage + +Other apps that depend on Memcached (such as OpenProject) will connect to it automatically at `memcached.memcached.svc.cluster.local:11211`. diff --git a/mysql/README.md b/mysql/README.md new file mode 100644 index 0000000..f6d5c4e --- /dev/null +++ b/mysql/README.md @@ -0,0 +1,19 @@ +# MySQL + +MySQL is an open-source relational database management system. This deploys a shared MySQL instance used by apps that require MySQL (such as Ghost). + +## Dependencies + +None. MySQL is a standalone infrastructure service. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **storage** - Persistent volume size (default: `20Gi`) +- **port** - Service port (default: `3306`) +- **timezone** - Server timezone (default: `UTC`) + +## Usage + +Apps that depend on MySQL will connect to it at `mysql.mysql.svc.cluster.local:3306`. Database credentials are managed automatically through the secrets system. diff --git a/open-webui/README.md b/open-webui/README.md new file mode 100644 index 0000000..ad5deb7 --- /dev/null +++ b/open-webui/README.md @@ -0,0 +1,33 @@ +# Open WebUI + +Open WebUI is a comprehensive, open-source web interface for AI models. It features a user-friendly design similar to ChatGPT and can connect to local or hosted LLM backends. + +## Dependencies + +None required, but works best with a local LLM backend like **vLLM** deployed on your cluster. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where the UI will be accessible (default: `chat.{your-cloud-domain}`) +- **vllmApiUrl** - URL of your LLM backend (default: connects to vLLM on the cluster) +- **enableSignup** - Whether to allow new account creation (default: `false`) +- **storage** - Persistent volume size (default: `10Gi`) + +## Access + +After deployment, Open WebUI will be available at: +- `https://chat.{your-cloud-domain}` + +## First-Time Setup + +1. Deploy a local LLM backend (e.g., vLLM) if you haven't already + +2. Add and deploy the app: + ```bash + wild app add open-webui + wild app deploy open-webui + ``` + +3. Create your account and start chatting with your local AI models diff --git a/openproject/README.md b/openproject/README.md new file mode 100644 index 0000000..04fdb9e --- /dev/null +++ b/openproject/README.md @@ -0,0 +1,34 @@ +# OpenProject + +OpenProject is an open-source project management software that provides comprehensive features for project planning, tracking, and collaboration. + +## Dependencies + +- **PostgreSQL** - Database for storing project data +- **Memcached** - Caching layer for improved performance + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **domain** - Where OpenProject will be accessible (default: `openproject.{your-cloud-domain}`) +- **adminUserEmail** - Admin account email (defaults to your operator email) +- **seedLocale** - Default language (default: `en`) +- **storage** - Persistent volume size (default: `5Gi`) + +## Access + +After deployment, OpenProject will be available at: +- `https://openproject.{your-cloud-domain}` + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add openproject + wild app deploy openproject + ``` + +2. Log in with the admin credentials (password reset will be required on first login) + +3. Create your first project and invite team members diff --git a/postgres/README.md b/postgres/README.md index 7a23941..54996a6 100644 --- a/postgres/README.md +++ b/postgres/README.md @@ -1 +1,19 @@ -# Postgress app +# PostgreSQL + +PostgreSQL is a powerful, open-source relational database system. This deploys a shared PostgreSQL instance used by many Wild Cloud apps. + +## Dependencies + +None. PostgreSQL is a standalone infrastructure service. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **storage** - Persistent volume size (default: `20Gi`) +- **port** - Service port (default: `5432`) +- **timezone** - Server timezone (default: `UTC`) + +## Usage + +Apps that depend on PostgreSQL (such as Immich, Gitea, Discourse, Mastodon, and others) will connect to it at `postgres.postgres.svc.cluster.local:5432`. Each app creates its own database and user via a db-init job during deployment. Root credentials are managed through the secrets system. diff --git a/redis/README.md b/redis/README.md new file mode 100644 index 0000000..6fd6436 --- /dev/null +++ b/redis/README.md @@ -0,0 +1,17 @@ +# Redis + +Redis is an open-source, in-memory data structure store used as a database, cache, and message broker. This deploys a shared Redis instance used by apps that require it. + +## Dependencies + +None. Redis is a standalone infrastructure service. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **port** - Service port (default: `6379`) + +## Usage + +Apps that depend on Redis (such as Immich, Mastodon, Discourse, and others) will connect to it automatically at `redis.redis.svc.cluster.local:6379`. Authentication is managed through the secrets system. diff --git a/vllm/README.md b/vllm/README.md new file mode 100644 index 0000000..7e9b12b --- /dev/null +++ b/vllm/README.md @@ -0,0 +1,29 @@ +# vLLM + +vLLM is a fast and easy-to-use library for LLM inference and serving with an OpenAI-compatible API. Use it to run large language models on your own hardware. + +## Dependencies + +None, but requires a GPU node in your cluster. + +## Configuration + +Key settings configured through your instance's `config.yaml`: + +- **model** - Hugging Face model to serve (default: `Qwen/Qwen2.5-7B-Instruct`) +- **maxModelLen** - Maximum sequence length (default: `8192`) +- **gpuProduct** - Required GPU type (default: `RTX 4090`) +- **gpuCount** - Number of GPUs to use (default: `1`) +- **gpuMemoryUtilization** - Fraction of GPU memory to use (default: `0.9`) +- **domain** - Where the API will be accessible (default: `vllm.{your-cloud-domain}`) + +## Access + +After deployment, the OpenAI-compatible API will be available at: +- `https://vllm.{your-cloud-domain}/v1` + +Other apps on the cluster (such as Open WebUI) can connect internally at `http://vllm-service.llm.svc.cluster.local:8000/v1`. + +## Hardware Requirements + +This app requires a GPU node in your cluster. Adjust the `gpuProduct`, `gpuCount`, and memory settings to match your available hardware.