From e028142190032a30771cc0965e556c757ec3bbed Mon Sep 17 00:00:00 2001 From: hhf Date: Thu, 5 Dec 2024 15:22:44 +0530 Subject: [PATCH] Update gathio/README.md --- gathio/README.md | 167 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 133 insertions(+), 34 deletions(-) diff --git a/gathio/README.md b/gathio/README.md index b70ab27..e9df4f1 100644 --- a/gathio/README.md +++ b/gathio/README.md @@ -1,45 +1,144 @@ -I've created an Unraid template for Gathio application. Here are some key points about the conversion: +# Complete Setup Guide for Gathio on Unraid -1. Base Structure: I followed the standard Unraid template format, similar to the example template provided in the Unraid forums. +## Prerequisites +- Unraid server with Docker enabled +- Access to the Unraid web interface +- Basic understanding of Docker networking +- At least 1GB of free space for initial setup -2. Volume Mappings: - - Converted the config path to `/mnt/user/appdata/gathio/config` - - Converted the images path to `/mnt/user/appdata/gathio/images` +## Step 1: Prepare Directory Structure -3. Network: - - Maintained the port mapping of 3032:3000 - - Set to bridge networking mode +First, create the necessary directories on your Unraid server. You can do this via SSH or the terminal: -4. Dependencies: - - Added a note about MongoDB dependency in the description - - Included MongoDB host environment variable +```bash +mkdir -p /mnt/user/appdata/gathio/config +mkdir -p /mnt/user/appdata/gathio/images +mkdir -p /mnt/user/appdata/gathio/mongodb +``` -Important notes: -1. You'll need to set up the MongoDB container separately in Unraid -2. The paths in the Data section use the standard Unraid `/mnt/user/appdata` location -3. You may want to adjust the Category based on your preferences +## Step 2: Set Up MongoDB Container -Now you have both templates needed for running Gathio on Unraid. Here's how to use them: +1. Open the Unraid Docker interface +2. Click "Add Container" +3. Paste the MongoDB template XML content +4. Important settings to modify: + - Change `MONGO_INITDB_ROOT_PASSWORD` to a secure password + - Note down the username (`root`) and password for later + - Verify the path `/mnt/user/appdata/gathio/mongodb` exists +5. Click "Apply" to create the container +6. Wait for the container to download and start -1. Install Order: - - Install the MongoDB container (Gathio-MongoDB) first - - Then install the Gathio container +## Step 3: Configure MongoDB Security -2. Important Configuration Notes: - - MongoDB template includes basic security with root username/password - - Make sure to change the default password in the MongoDB template - - The containers are configured to use the same network mode (bridge) - - Data is persistently stored in `/mnt/user/appdata/gathio/` - -3. Volume Structure: +1. After MongoDB starts, create a specific database and user for Gathio: + ```bash + docker exec -it Gathio-MongoDB mongosh -u root -p your_password ``` - /mnt/user/appdata/gathio/ - ├── config/ # Gathio configuration - ├── images/ # Gathio event images - └── mongodb/ # MongoDB data +2. In the MongoDB shell, run: + ```javascript + use gathio + db.createUser({ + user: "gathio_user", + pwd: "choose_secure_password", + roles: [{ role: "readWrite", db: "gathio" }] + }) + exit ``` -4. Security Considerations: - - The MongoDB port (27017) is exposed but you can remove this if you don't need external access - - Set strong passwords for the MongoDB root user - - Make sure your Gathio configuration matches the MongoDB credentials +## Step 4: Set Up Gathio Configuration + +1. Create a configuration file in `/mnt/user/appdata/gathio/config/config.json`: + ```json + { + "port": 3032, + "baseUrl": "http://your-server-ip:3032", + "mongodb": { + "host": "mongo", + "port": 27017, + "database": "gathio", + "username": "gathio_user", + "password": "your_gathio_user_password" + }, + "title": "My Gathio Instance", + "timezone": "UTC" + } + ``` + +## Step 5: Deploy Gathio Container + +1. Open the Unraid Docker interface +2. Click "Add Container" +3. Paste the Gathio template XML content +4. Verify these settings: + - Port mapping: 3032:3000 + - Config directory: `/mnt/user/appdata/gathio/config` + - Images directory: `/mnt/user/appdata/gathio/images` +5. Click "Apply" to create the container + +## Step 6: Verify Installation + +1. Wait for both containers to show as running (green status) +2. Access Gathio at `http://your-unraid-ip:3032` +3. Create a test event to verify functionality + +## Maintenance and Backup + +### Regular Backups +Include these directories in your Unraid backup strategy: +- `/mnt/user/appdata/gathio/config` +- `/mnt/user/appdata/gathio/images` +- `/mnt/user/appdata/gathio/mongodb` + +### Updating +1. MongoDB updates: + - Stop the MongoDB container + - Change the tag in template if desired + - Start the container + +2. Gathio updates: + - Stop the Gathio container + - Change the tag in template if desired + - Start the container + +## Troubleshooting + +### Common Issues and Solutions + +1. MongoDB Connection Issues: + - Verify MongoDB container is running + - Check MongoDB logs: `docker logs Gathio-MongoDB` + - Verify credentials in config.json match MongoDB user + +2. Gathio Won't Start: + - Check Gathio logs: `docker logs gathio-app` + - Verify config.json format and permissions + - Ensure MongoDB is running and accessible + +3. Image Upload Issues: + - Check permissions on `/mnt/user/appdata/gathio/images` + - Verify directory ownership matches container user + +### Getting Help + +If you encounter issues: +1. Check container logs first +2. Verify all paths and permissions +3. Ensure network connectivity between containers +4. Check Gathio's GitHub issues page for similar problems + +## Security Recommendations + +1. Network Security: + - Consider using a reverse proxy (like SWAG) + - Enable HTTPS if exposed to internet + - Restrict MongoDB port access + +2. Authentication: + - Use strong passwords for MongoDB + - Regularly rotate credentials + - Monitor access logs + +3. Filesystem: + - Regular permission checks + - Periodic security audits + - Keep backups encrypted \ No newline at end of file