{"id":38977814,"url":"https://github.com/usegalaxy-eu/operations","last_synced_at":"2026-01-17T16:48:56.648Z","repository":{"id":32604904,"uuid":"101638676","full_name":"usegalaxy-eu/operations","owner":"usegalaxy-eu","description":"usegalaxy.eu operations","archived":false,"fork":false,"pushed_at":"2026-01-16T09:30:29.000Z","size":1748,"stargazers_count":4,"open_issues_count":6,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-16T22:46:35.612Z","etag":null,"topics":["documentation","operations","usegalaxy","usegalaxy-eu"],"latest_commit_sha":null,"homepage":"https://usegalaxy-eu.github.io/operations/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usegalaxy-eu.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-28T11:59:43.000Z","updated_at":"2026-01-16T09:30:32.000Z","dependencies_parsed_at":"2024-03-23T13:26:38.450Z","dependency_job_id":"255c8d4e-7775-4233-ad30-196800321f7b","html_url":"https://github.com/usegalaxy-eu/operations","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/usegalaxy-eu/operations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Foperations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Foperations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Foperations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Foperations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usegalaxy-eu","download_url":"https://codeload.github.com/usegalaxy-eu/operations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usegalaxy-eu%2Foperations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["documentation","operations","usegalaxy","usegalaxy-eu"],"created_at":"2026-01-17T16:48:56.580Z","updated_at":"2026-01-17T16:48:56.635Z","avatar_url":"https://github.com/usegalaxy-eu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![documentation](https://img.shields.io/badge/documentation-online-blue)](https://usegalaxy-eu.github.io/operations/)\n\n# Operations Manual for usegalaxy.eu\n\n- [Custom Subdomain](./subdomains.md)\n- [Interactive Tools](./interactive_tools.md)\n- [Update a Tool](https://github.com/usegalaxy-eu/usegalaxy-eu-tools)\n- [Galaxy Europe Services](./cloud/services.md)\n- [Bare metal nodes](./bare_metal.md)\n- [Traefik](./traefik.md)\n- [Configuring multi-GPU HTCondor nodes](./multi-gpu-single-node-htcondor.md)\n\nGalaxy Admin:\n\n- [Upgrade Procedures](./upgrade.md)\n- [Rebasing when upstream gets backports](./rebasing.md)\n- [Process Management](./procmgmt.md)\n- [TIaaS Requests](./tiaas.md)\n- [Jobs](./jobs.md)\n- [Monitoring](./monitoring.md)\n- [Mixed Notes](./notes.md)\n\nCloud Admin:\n\n- [VMs overview](./cloud/readme.md)\n- [Accessing bwCloud with Terraform](./cloud/access-bwCloud.md)\n- [Launching a student VM](./cloud/student-vm.md)\n- [Services in the bwCloud](./cloud/services.md)\n- [Celery](./celery.md)\n\nThis and That:\n- [Miscellaneous stuff](./miscellanea/)\n\n## Read-only Fridays\n\n- **NO EXCEPTIONS**\n- Do not merge things to the playbook repositories that will be auto-applied\n- Do not do any manual systems administration\n- Consider writing documentation or more test cases instead.\n\n## Adding a User to Grafana\n\n1. They should [login](https://stats.galaxyproject.eu) using GitHub auth.\n    - Note that they must be a member of an [approved organisation](https://github.com/usegalaxy-eu/infrastructure-playbook/blob/39d5b7e86b4f45acba53adb965b11b63700327ad/group_vars/grafana.yml#L119).  (Note that this link is to a specific revision where I could be sure the line number was correct, please check against `master`)\n2. (As an admin) Open [the user list](https://stats.galaxyproject.eu/admin/users/)\n3. Find them and \"edit\"\n4. Under \"Organizations\" type \"Main\" and select the main organisation that shows up, adding them as the appropriate role.\n\n## (Re-)sending activation links\n\nSome users do not get the activation email or are unable to find it. On request we can generate the link with the\nfollowing procedure:\n\n```bash\ncd /opt/galaxy/server/\n. ../venv/bin/activate\npython /data/gxmnt/galaxy-dist/scripts/activation_link.py -c ~/config/galaxy.ini -e \u003ctheir email\u003e\n```\n\n## Creating and editing an encrypted file using Ansible Vault\nAnsible Vault encrypts variables and files to protect sensitive content such as passwords or keys rather than leaving it visible as plaintext in playbooks or roles.To use Ansible Vault you need one or more passwords to encrypt and decrypt content. If you store your vault passwords in a third-party tool such as a secret manager, you need a script to access them. Use the passwords-with the ‘ansible-vault’ command line tool to create and view encrypted variables, create encrypted files, encrypt existing files, or edit, re-key, or decrypt files.\n\n1. Clone [our repository](https://github.com/usegalaxy-eu/infrastructure-playbook).\n2. Navigate to Ansible vault directory `cd infrastructure-playbook/secret_group_vars/`\n3. Create a new branch or checkout to the branch you want to switch to, e.g.(‘dp_keycloak’)\n4. Use command `ansible-vault create keycloak.yml` to create new encrypt file.\n5. Then ansible asks for:\n\n        New Vault password:\n\n        Confirm New Vault password:\n   It is recommended to use the previously set Vault password for smooth running of playbook\n6. The newly created encrypt file (‘keycloak.yml’)  enables us to enter data or enter lines of code before encrypted.\n7. The content in the encrypted files can be read by command `ansible-vault view keycloak.yml` and can be edited by the command `ansible-vault edit  keycloak.yml` followed by entering the given Vault password.\n8. Update the branch pushing commits `git push`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusegalaxy-eu%2Foperations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusegalaxy-eu%2Foperations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusegalaxy-eu%2Foperations/lists"}