{"id":30142143,"url":"https://github.com/local-connectivity-lab/scn-redmine","last_synced_at":"2025-08-11T05:41:32.245Z","repository":{"id":185985795,"uuid":"674422120","full_name":"Local-Connectivity-Lab/scn-redmine","owner":"Local-Connectivity-Lab","description":"Redmine container for Seattle Community Network","archived":false,"fork":false,"pushed_at":"2025-01-09T20:19:23.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-09T21:28:41.143Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Local-Connectivity-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-03T23:12:39.000Z","updated_at":"2025-01-09T20:19:26.000Z","dependencies_parsed_at":"2023-10-04T03:03:44.338Z","dependency_job_id":"ea227309-e909-4d88-a7b5-faa7929fb726","html_url":"https://github.com/Local-Connectivity-Lab/scn-redmine","commit_stats":null,"previous_names":["philion/scn-redmine","local-connectivity-lab/scn-redmine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Local-Connectivity-Lab/scn-redmine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Fscn-redmine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Fscn-redmine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Fscn-redmine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Fscn-redmine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Local-Connectivity-Lab","download_url":"https://codeload.github.com/Local-Connectivity-Lab/scn-redmine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Fscn-redmine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269837860,"owners_count":24483181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-11T05:41:31.217Z","updated_at":"2025-08-11T05:41:32.174Z","avatar_url":"https://github.com/Local-Connectivity-Lab.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scn-redmine\nRedmine container for Seattle Community Network\n\nThis is intended to be the thinnest shim possible on top of the Bitnami redmine container (https://hub.docker.com/r/bitnami/redmine/)\nto support receiving email via IMAP and secure storage of secrets. When possible, follow the Bitnami instructions.\n\nThis project will also act as an example of best practices for minimalist container-based projects with support tools to backup and recover container volumes and other documented operating procedures.\n\n## Dependencies\n\n### Docker\n\nWhile this is intended to be a generic \"container\", it has only been tested with a standard\nDocker Engine install on a Unbuntu Linux environment.\n\nTo install the necessary tools, see: https://docs.docker.com/engine/install/ubuntu/\n\nThe process is essentially:\n```\nsudo apt-get update\nsudo apt-get install ca-certificates curl gnupg\nsudo install -m 0755 -d /etc/apt/keyrings\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\necho \\\n  \"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\\n  \"$(. /etc/os-release \u0026\u0026 echo \"$VERSION_CODENAME\")\" stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\nsudo apt-get update\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo docker run hello-world\n```\n\n## Operation\n\n### Initial Setup\n\n1. Clone the repo `https://github.com/Local-Connectivity-Lab/scn-redmine`.\n```\ngit clone https://github.com/Local-Connectivity-Lab/scn-redmine redmine\ncd redmine\n```\n2. Deploy into a standard Docker engine:\n```\ndocker compose up --build -d\n```\n3. Login the first with the default credentials: `user`, pw:`bitnami1`\n4. Create a user with administrator privlidges:\n   1. Click **Administration** in the top menu.\n   2. Click **Users** in the left-hand column.\n   3. Click **New User** near the top, on the right hand side.\n   4. Fill out the *Information* and *Authentication* forms, including the **Administrator** checkbox.\n   5. Click **Create** to save the data and create the new user.\n5. **Sign out** (top right) and login as the user you just created.\n6. Delete the temporary `user` user:\n   1. Go back to **Administration** -\u003e **Users**\n   2. On the line for the user `user`, client the **Delete** button.\n   3. Enter the username `user` to validate.\n   4. Click the **Delete** button.\n7. [Create an `admin` bot user for netbot](https://github.com/Local-Connectivity-Lab/netbot/blob/main/docs/redmine.md) (if netbot is being used).\n8. Create the \"Discord ID\" user custom field:\n   1. Go to **Administration** -\u003e **Custom Fields**\n   2. Click **New custom field** near the top, on the right hand side.\n   3. Select *Users* and click **Next**.\n   4. For *Name* enter `Discord ID`\n   5. Click the **Used as a filter** checkbox\n   6. Click **Create** to create the custom field.\n9.  Create the \"syncdata\" custom field:\n    1. Click **New custom field** near the top, on the right hand side.\n    2. Select *Tickets* and click **Next**.\n    3. For *Name* enter `syncdata`\n    4. Click the **Used as a filter** checkbox\n    5. Click the **Searchable** checkbox\n    6. Click the **Bug**, **Feature**, **Support** checkboxs under *Trackers*\n    7. Click **For all projects** under *Projects*.\n    8. Click **Create** to create the custom field.\n10. Create the \"To/CC\" user custom field...\n    1. Click **New custom field** near the top, on the right hand side.\n    2. Select *Tickets* and click **Next**.\n    3. For *Name* enter `To/CC`\n    4. Click the **Used as a filter** checkbox\n    5. Click the **Searchable** checkbox\n    6. Click the **Bug**, **Feature**, **Support** checkboxs under *Trackers*\n    7. Click **For all projects** under *Projects*.\n    8. Click **Create** to create the custom field.\n\n### Standard Deployment\n\nThis process is used any time there is an update to the SCN Redmine container to deploy.\n\n```\ncd github/redmine\ngit pull\ngit submodule update --init --recursive\ndocker compose down\ndocker compose up --build -d\n```\n\n### Backup and Restore\n\nThe provided `cluster` script handles creating backups and restoring the cluster state from them.\n\nTo create a backup:\n```\ndocker compose down\n./cluster backup\ndocker compose up -d\n```\nThis will create a file named `clustername-datestamp.tgz`, like: redmine-202308051251.tgz\n\nTo restore a cluster from backup:\n```\ndocker compose down\n./cluster restore redmine-202308051251.tgz\ndocker compose up -d\n```\n\n## Backup Process \u0026 Structure\n\nThe backup file is created by `cluster backup` is a gzipped tar file wrapping a gzipped tar file for each volume mentioned in the `docker-compose.yml`. It is automatically named with the cluster name (the parent directory of the compose yaml) and a to-the-minute precise datestamp.\n\nThe process for creating a backup:\n1. Creating a new date-stamped dir from the parent-dir name (same as compose): name-YYYYMMDDHHMM\n2. For each volume mentioned in the compose.yml\n   2.1 Run an empty container, with the volume and the backup dir mounted\n   2.2 Archive contents of volume: volume.tgz in the mounted backup dir, w/o parent-context\n 3. tar-gzip the entire backyp dir into name-YYYYMMDDHHMM.tgz\n\nRestoring the backup file with 'cluster restore backup-file.tgz'\n1. Untar the backup file\n2. For each tgz file in the backup:\n   2.1 Confirm a matching entry in the compose file\n   2.2 Run a simple container, mounting the volume and the backup\n   2.3 Import the backup into the volume with tar on the specific volume\n 3. Cleanup the backup dir (leaving the backup.tgz untouched)\n\n\n## Further Reading\n\n* https://github.com/bitnami/containers/tree/main/bitnami/redmine#how-to-use-this-image\n* https://bitnami.com/stack/redmine/containers\n* https://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails\n* https://github.com/BretFisher/docker-vackup\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocal-connectivity-lab%2Fscn-redmine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocal-connectivity-lab%2Fscn-redmine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocal-connectivity-lab%2Fscn-redmine/lists"}