diff --git a/docs/ops/current/deployment-docs-mycelium.md b/docs/ops/current/deployment-docs-mycelium.md new file mode 100644 index 0000000..dddb949 --- /dev/null +++ b/docs/ops/current/deployment-docs-mycelium.md @@ -0,0 +1,65 @@ +# Deployment Guide for Mycelium Society Docs + +This guide provides a deployment for serving the Mycelium Society documentation at `docs.mycelium.tf`. + +We build the docs website with hero docusaurus then we serve directly from files. + +## Prerequisites + +- Linux server with Caddy web server installed +- zinit service manager installed +- Root or sudo access + +## Step 1: Configure Caddy + +Update your Caddyfile to include the docs serving: + +```bash +# Edit the Caddyfile (adjust path to your Caddyfile location) +nano /root/code/github/despiegk/env_web/ourworld/ovh1_web_current/caddy/Caddyfile +``` + +Add or update: + +``` +import mycelium_docs.caddy +``` + +Create `mycelium_docs.caddy`: + +``` +docs.mycelium.tf { + root * /root/hero/www/info/mycelium_society + encode gzip + try_files {path} {path}/ /index.html + file_server +} +``` + +## Step 2: Reload Caddy + +```bash +zinit restart caddy +``` + +## Building and Publishing Docs + +Users can build and publish the docs using: + +```bash +hero docusaurus -path ~/code/git.ourworld.tf/tfgrid/docs_tfgrid4/ebooks/mycelium_society -dp +``` + +This builds the Docusaurus site and deploys it to `/root/hero/www/info/mycelium_society`. + +## Monitoring + +- Check Caddy status: `zinit list` +- View logs: `zinit log caddy` +- Access at `https://docs.mycelium.tf` + +## Notes + +- Ensure DNS for `docs.mycelium.tf` points to your server. +- The content is served directly from static files at `/root/hero/www/info/mycelium_society`. +- Build and deploy using the hero command above. \ No newline at end of file diff --git a/docs/ops/current/deployment-society-mycelium.md b/docs/ops/current/deployment-society-mycelium.md new file mode 100644 index 0000000..19b675c --- /dev/null +++ b/docs/ops/current/deployment-society-mycelium.md @@ -0,0 +1,148 @@ +# Deployment Guide for Mycelium Society Website + +This guide provides a deployment approach for the Mycelium Society website, adapted from the ThreeFold Marketplace setup. This is a React + Vite frontend application that builds to static files served via Caddy. + +> **Note:** For automated deployment, consider integrating with CI/CD pipelines. + +We show steps for the main branch; for development, adjust accordingly (e.g., use `development` branch and dev-specific paths). + +## Prerequisites + +- Linux server with: + - Git installed + - Node.js (version 18+) and npm installed + - Caddy web server installed + - zinit service manager installed (optional, for automation) + - Root or sudo access + +## Step 1: Clone the Repository + +Create the directory structure and clone the repository: + +```bash +# Create directory structure +mkdir -p /root/code/git.ourworld.tf/mycelium/ +cd /root/code/git.ourworld.tf/mycelium/ + +# Clone the repository +git clone https://git.ourworld.tf/mycelium/www_mycelium_society +cd www_mycelium_society +git checkout main +``` + +## Step 2: Build the Application + +Install dependencies and build the production version: + +```bash +# Install Node.js dependencies +npm install + +# Build for production +npm run build +``` + +This generates optimized static files in the `dist/` folder. + +## Step 3: Create a zinit Service (Optional for Build Automation) + +For automated builds and updates, create a zinit service: + +1. Create the service script: + +```bash +mkdir -p /etc/zinit/cmds +nano /etc/zinit/cmds/mycelium-society.sh +``` + +Add the following content (adjust branch as needed): + +```bash +#!/bin/bash +cd /root/code/git.ourworld.tf/mycelium/www_mycelium_society +git checkout main +npm install +npm run build +# Static files are ready; Caddy serves them +``` + +Make the script executable: + +```bash +chmod +x /etc/zinit/cmds/mycelium-society.sh +``` + +2. Create the zinit service definition: + +```bash +nano /etc/zinit/mycelium-society.yaml +``` + +Add: + +```yaml +exec: "/bin/bash -c /etc/zinit/cmds/mycelium-society.sh" +``` + +## Step 4: Configure Caddy + +Update your Caddyfile to serve the static files: + +```bash +# Edit the Caddyfile (adjust path to your Caddyfile location) +nano /root/code/github/despiegk/env_web/ourworld/ovh1_web_current/caddy/Caddyfile +``` + +Add or update: + +``` +import society.mycelium.caddy +``` + +Create `society.mycelium.caddy`: + +``` +society.mycelium.tf { + root * /root/code/git.ourworld.tf/mycelium/www_mycelium_society/dist + try_files {path} {path}/ /index.html + file_server +} +``` + +## Step 5: Start Services + +```bash +# If using zinit for build automation +zinit monitor mycelium-society +zinit start mycelium-society + +# Restart Caddy to load configuration +zinit restart caddy +``` + +## Updating the Application + +To update after changes: + +```bash +cd /root/code/git.ourworld.tf/mycelium/www_mycelium_society +git pull +npm install +npm run build +# Reload Caddy +zinit restart caddy +``` + +## Monitoring + +- Check Caddy status: `zinit list` +- View logs: `zinit log caddy` +- Access the site at `http://your-domain` (ensure DNS points to VM public IP) + +## Local Development + +For local builds: + +- `npm install` +- `npm run dev` (development server) +- `npm run build` (production build) \ No newline at end of file