{"id":44677320,"url":"https://github.com/specify/taxa_tree_docker","last_synced_at":"2026-02-15T03:30:38.470Z","repository":{"id":126933420,"uuid":"379583020","full_name":"specify/taxa_tree_docker","owner":"specify","description":"Dockerized version of https://github.com/specify/taxa_tree/","archived":false,"fork":false,"pushed_at":"2025-02-07T15:09:46.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-19T10:08:56.851Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/specify.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":"2021-06-23T11:41:33.000Z","updated_at":"2025-02-07T15:09:49.000Z","dependencies_parsed_at":"2023-12-03T06:21:16.720Z","dependency_job_id":"abd90f4c-0fb8-42fa-959a-a4cc17c6c46f","html_url":"https://github.com/specify/taxa_tree_docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/specify/taxa_tree_docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specify%2Ftaxa_tree_docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specify%2Ftaxa_tree_docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specify%2Ftaxa_tree_docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specify%2Ftaxa_tree_docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specify","download_url":"https://codeload.github.com/specify/taxa_tree_docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specify%2Ftaxa_tree_docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29466929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T01:01:38.065Z","status":"online","status_checked_at":"2026-02-15T02:00:07.449Z","response_time":118,"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":"2026-02-15T03:30:36.572Z","updated_at":"2026-02-15T03:30:38.463Z","avatar_url":"https://github.com/specify.png","language":"Dockerfile","funding_links":[],"categories":["Repositories"],"sub_categories":[],"readme":"# Dockerized Taxa Tree Generators\n\nDockerized version of\n[Taxa Tree Generators](https://github.com/specify/taxa_tree/)\n\nLive version available at\n[https://taxon.specifysoftware.org](https://taxon.specifysoftware.org)\n\n## Installation\n\nClone the repositories:\n\n```bash\ngit clone https://github.com/specify/taxa_tree_docker\ncd taxa_tree_docker\ngit clone --single-branch --branch gbif https://github.com/specify/taxa_tree ./taxa_tree_gbif\ngit clone --single-branch --branch itis https://github.com/specify/taxa_tree ./taxa_tree_itis\ngit clone --single-branch --branch catalogue_of_life_3 https://github.com/specify/taxa_tree ./taxa_tree_col \ngit clone --single-branch --branch master https://github.com/specify/taxa_tree_stats ./taxa_tree_stats\ngit clone --single-branch --branch worms https://github.com/specify/taxa_tree ./taxa_tree_worms\ngit clone https://github.com/specify/taxa_tree_stats\n```\n\nInstall certbot and generate the certificates\n\n```bash\nsudo certbot certonly -d taxon.specifysoftware.org\n```\n\n---\nIn development, you can generate some test certificates by running these commands inside the `taxa_tree_docker` dir:\n\n```bash\nopenssl genrsa -out privkey.pem 2048\nopenssl req -new -key privkey.pem -out localhost.csr\nopenssl x509 -req -days 365 -in localhost.csr -signkey privkey.pem -out fullchain.pem\n```\n\n---\n\nModify the nginx's volumes section of `docker-compose.yml` to point to\nthe location of `fullchain.pem` and `privkey.pem`\n\n```yaml\n      - './fullchain.pem:/etc/letsencrypt/live/taxon.specifysoftware.org/fullchain.pem:ro'\n      - './privkey.pem:/etc/letsencrypt/live/taxon.specifysoftware.org/privkey.pem:ro'\n```\n\nYou can configure regular certificate renewal, but that is beyound\nthe scope of this documentation\n\n## Config\n\nFind the following line in the `./docker-compose.yml` file:\n\n```yml\nargs:\n  LINK: 'https://taxon.specifysoftware.org'\n```\n\nChange the `LINK` variable to an address where the server would be publicly\navailable.\n\nTo disable a certain provider, remove it from `update-taxa.sh` and\n`index.html`.\n\n## Usage\n\nStart the containers:\n\n```bash\ndocker-compose up\n```\n\nThe first startup may take quite some time as the base container images are\ndownloaded, containers are built, taxa trees are downloaded and cache is\ncreated.\n\n### Copying WoRMS archive\n\nOnce you have obtained an archive of WoRMS data, you need to copy it to the correct directory in the back end container to generate the tree.\n\n```bash\ndocker cp /full/path/on/your/system/to/archive.zip taxa_tree_docker-back_end-1:/home/specify/taxa_tree_worms_working_dir/archive.zip\n```\n\n## Update data\n\nTo begin, you'll need to call the `update-taxa` shell script file in the back-end container.\n\nTo update all sources, you can run this command:\n```bash\ndocker exec taxa_tree_docker-back_end-1 ./update-taxa.sh\n```\n\n**Catalogue of Life:**\n```bash\ndocker exec taxa_tree_docker-back_end-1 sh -c \"cd /home/specify/taxa_tree_col/back_end/ \u0026\u0026 /home/specify/venv/bin/python3 refresh_data.py\"\n```\n\n**GBIF:**\n```bash\ndocker exec taxa_tree_docker-back_end-1 sh -c \"cd /home/specify/taxa_tree_gbif/back_end/ \u0026\u0026 /home/specify/venv/bin/python3 refresh_data.py\"\n```\n\n**ITIS:**\n```bash\ndocker exec taxa_tree_docker-back_end-1 sh -c \"cd /home/specify/taxa_tree_itis/back_end/ \u0026\u0026 /home/specify/venv/bin/python3 refresh_data.py\"\n```\n\n\n**WoRMS:** (Requires the WoRMS archive in the previous step)\n```bash\ndocker exec taxa_tree_docker-back_end-1 sh -c \"cd /home/specify/taxa_tree_worms/back_end/ \u0026\u0026 /home/specify/venv/bin/python3 refresh_data.py\"\n```\n\n****\n\n## Regular updates\n\nIt is recommended to also configure a CRON job to check for taxa updates from\neach provider.\n\nExample crontab:\n\n```\n0 4 * * * docker exec taxa_tree_docker-back_end-1 ./update-taxa.sh \u003e\u003e /home/specify/update-taxa.log 2\u003e\u00261\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecify%2Ftaxa_tree_docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecify%2Ftaxa_tree_docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecify%2Ftaxa_tree_docker/lists"}