{"id":24557485,"url":"https://github.com/openms/streamlit-deployment","last_synced_at":"2026-01-03T10:17:30.341Z","repository":{"id":174696952,"uuid":"621693041","full_name":"OpenMS/streamlit-deployment","owner":"OpenMS","description":"Streamlit deployment with Docker","archived":false,"fork":false,"pushed_at":"2024-04-12T10:28:03.000Z","size":53,"stargazers_count":0,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-14T05:45:44.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"joeychrys/streamlit_deployment","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenMS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-03-31T07:27:24.000Z","updated_at":"2023-06-12T18:22:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb8de2fe-b2d2-42d1-9a82-286f8a3a431d","html_url":"https://github.com/OpenMS/streamlit-deployment","commit_stats":{"total_commits":62,"total_committers":8,"mean_commits":7.75,"dds":0.5,"last_synced_commit":"e6cfdabfe29db91fc11f00aedb01c1afab636aab"},"previous_names":["openms/streamlit-deployment"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fstreamlit-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fstreamlit-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fstreamlit-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fstreamlit-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenMS","download_url":"https://codeload.github.com/OpenMS/streamlit-deployment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243910768,"owners_count":20367546,"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","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-01-23T05:17:06.235Z","updated_at":"2026-01-03T10:17:30.305Z","avatar_url":"https://github.com/OpenMS.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenMS streamlit app deployment\n\nMultiple streamlit apps based on the [OpenMS streamlit template](https://github.com/OpenMS/streamlit-template/) can be deployed together using docker compose.\n\n## Features\n\n- deploy all OpenMS apps at once\n- user data (in workspaces) is stored in persistent docker volumes for each app\n\n## Requirements\n- Docker Compose\n\n## Deployment (e.g., needed after one app changed)\n\n**1. Make sure submodules are up-to-data.**\n\n`git submodule init`\n\n`git submodule update`\n\n**2. Specify GitHub token (to download Windows executables).**\n\n\u003e This is **important**! Ommitting this step while result in all apps not having the option to download exetutables any more.\n\nCreate a temporary `.env` file with your Github token. It should contain only one line:\n\n`GITHUB_TOKEN=\u003cyour-github-token\u003e`\n\n**3. Run docker-compose.**\n\n`docker compose build`\n\n\u003e Make sure to remove the `.env` file with your Github token after successfull build\n\u003e Optionally use the `--no-cache` flag to prevent caching\n\n\u003e Optionally use the `--no-cache` flag to prevent caching\n\n## Add new app\n\nThis will add your app as a submodule to the streamlit deployment repository. \n\n**1. Fork and clone the [OpenMS streamlit deployment](https://github.com/OpenMS/streamlit-deployment) repository locally.**\n\n**2. Add your app as submodule. Make sure the app name is not used already.**\n\n`git submodule add \u003curl-to-git-repository\u003e \u003cname-of-app\u003e`\n\n**3. Initialize and update submodules.**\n\n`git submodule init`\n\n`git submodule update`\n\n**4. Add your app to `docker-compose.yml` file as a new service.**\n\nCopy the last service as a template.\n\nCheck and update the following entries:\n\n- name of the service \n    - the name of the submodule\n- build context\n    - the relative path to the submodule\n- build dockerfile\n    - the correct Dockerfile\n- image\n    - name of the docker image (typically the service name with underscores)\n- ports\n    - chose an incremental host port number from the last service pointing to the streamlit port in docker container (8501)\n- volumes\n    - update the names of the workspace directories, user data is stored outside of the docker container in a docker volume \n- command\n    - update command with your main streamlit file\n\n**6. Test everything works locally.**\n\nRun docker-compose to launch all services.\n\n` docker compose up -d`\n\n- there should be no errors building all services\n- make sure all apps are accessible via their port from localhost\n- test functionality of your app\n\n**7. Make a pull request with your changes to OpenMS/streamlit-deployment main branch.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenms%2Fstreamlit-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenms%2Fstreamlit-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenms%2Fstreamlit-deployment/lists"}