{"id":47838881,"url":"https://github.com/cnr-ibba/shiny-server","last_synced_at":"2026-04-03T20:35:44.061Z","repository":{"id":53037327,"uuid":"241383659","full_name":"cnr-ibba/shiny-server","owner":"cnr-ibba","description":"Shiny Server @CNR-IBBA","archived":false,"fork":false,"pushed_at":"2025-10-29T21:10:54.000Z","size":5304,"stargazers_count":7,"open_issues_count":11,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-29T21:12:37.966Z","etag":null,"topics":["django-authentication","docker","docker-compose","shiny-server"],"latest_commit_sha":null,"homepage":"https://shiny.ibba.cnr.it","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cnr-ibba.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}},"created_at":"2020-02-18T14:34:16.000Z","updated_at":"2024-01-29T09:57:35.000Z","dependencies_parsed_at":"2022-08-23T23:21:24.895Z","dependency_job_id":null,"html_url":"https://github.com/cnr-ibba/shiny-server","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/cnr-ibba/shiny-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnr-ibba%2Fshiny-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnr-ibba%2Fshiny-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnr-ibba%2Fshiny-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnr-ibba%2Fshiny-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnr-ibba","download_url":"https://codeload.github.com/cnr-ibba/shiny-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnr-ibba%2Fshiny-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31375770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["django-authentication","docker","docker-compose","shiny-server"],"created_at":"2026-04-03T20:35:43.979Z","updated_at":"2026-04-03T20:35:44.043Z","avatar_url":"https://github.com/cnr-ibba.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Shiny server with Django authentication\n\n[![Django Tests](https://github.com/cnr-ibba/shiny-server/actions/workflows/django-tests.yml/badge.svg)](https://github.com/cnr-ibba/shiny-server/actions/workflows/django-tests.yml)\n[![Coverage Status](https://coveralls.io/repos/github/cnr-ibba/shiny-server/badge.svg)](https://coveralls.io/github/cnr-ibba/shiny-server)\n![GitHub](https://img.shields.io/github/license/cnr-ibba/shiny-server)\n![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/cnr-ibba/shiny-server)\n\nThis is an attempt of managing shiny authentication with Django starting from\n[Django application as an authentication / authorization server for Shiny](http://pawamoy.github.io/2018/03/15/django-auth-server-for-shiny/)\nguide and modifying stuff accordingly. The Django template derive from\n[this repository](https://github.com/cnr-ibba/dockerfiles/tree/master/compose/django)\nwhile the shiny specific configuration comes from this [shiny docker-compose](https://github.com/cnr-ibba/dockerfiles/tree/master/compose/shiny)\nproject.\nThe aim of this project is to provide both free and restricted access to shiny\napplications relying on Django authentication system and nginx. Applications could\nbe accessed using the Django frontend as a container of an iframe application or\ndirectly by specifying the path of the application. A specific NGINX configuration\nwill be responsible to provide access to shiny applications relying on Django\nauthentication system.\n\nIf you need more information please see our\n[Wiki on GitHub](https://github.com/cnr-ibba/shiny-server/wiki)\n\n## Install dependencies\n\nAll this stuff works inside a docker compose image and need [docker](https://www.docker.com/)\nand [docker compose](https://docs.docker.com/compose/) to work. Please refer to\nthe official documentation on how to install [docker](https://docs.docker.com/install/)\nand [docker compose](https://docs.docker.com/compose/install/)\n\n## Install shiny-server\n\nWe have a detailed guide on how to install and configure `shiny-server`: please\nrefer to the [Install and Update](https://github.com/cnr-ibba/shiny-server/wiki/Install-and-Update)\nwiki of this project for more details.\n\nClone this project and enter in project directory:\n\n```bash\ngit clone https://github.com/cnr-ibba/shiny-server.git\ncd shiny-server\n```\n\nThis location will be referred as **working directory**, since all commands need\nto be launched inside this directory. This directory will also contain all the\nshiny application data, database and configuration files.\n\n### Setting up the environment file\n\n`docker compose` can read environment variables from a `.env` placed in the working\ndirectory in which we can define all variables useful for our containers, like database\ncredentials. Edit a new `.env` file in working directory and set values for such\nenvironment variables accordingly:\n\n```conf\nMYSQL_ROOT_PASSWORD=\u003croot_password\u003e\nSHINY_DATABASE=\u003cshiny_db\u003e\nSHINY_USER=\u003cshiny_user\u003e\nSHINY_PASSWORD=\u003cshiny_password\u003e\nSECRET_KEY=\u003cyour SECRET_KEY\u003e\nDEBUG=False\nADMINS=\u003cadmin name1\u003e:\u003cadmin email\u003e\nDEFAULT_FROM_EMAIL=\u003cyour email from\u003e\nEMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend\nEMAIL_HOST=\u003cyour stmp server\u003e\nEMAIL_HOST_PASSWORD=\u003cyour smtp password\u003e\nEMAIL_HOST_USER=\u003cyour smtp password\u003e\nEMAIL_PORT=\u003cyour email port address\u003e\nEMAIL_USE_TLS=\u003cset 'True' to use TLS, false otherwise\n```\n\n### Build the docker compose suite\n\nIn order to build the images according to the `docker-compose.yml` specifications,\nDocker needs download and install all required dependencies; it will need several\nminutes to complete. Launch this command from the working directory:\n\n```bash\ndocker compose build\n```\n\n\u003e NOTE: those images are pre-built and available on [Docker Hub](https://hub.docker.com).\n\u003e You can collect them directly from there using:\n\u003e\n\u003e ```bash\n\u003e docker compose pull\n\u003e ```\n\n### Fixing permissions\n\nYou will need also to check file permissions in `django-data` folder, especially for `media`\nfolder:\n\n```bash\ndocker compose run --rm -u $(id -u):www-data uwsgi sh -c 'chmod -R g+rw media \u0026\u0026 chmod g+rwx media/thumbnails/'\ndocker compose run --rm -u $(id -u):www-data uwsgi sh -c 'chgrp -R www-data .'\n```\n\nYou may also need to fix permissions for `renv-cache` folder used by R packages\ninstallation:\n\n```bash\ndocker-compose run --rm -u root:root -ti shiny-4.5 sh -c 'chown -R shiny:shiny /srv/renv-cache'\n```\n\n### Initialize Django tables\n\nAfter inizialization, a new django user with administrative privilges is needed. This is\nnot the default mysql user, but a user valid only in django environment. Moreover,\nthe django tables need to be defined:\n\n```bash\ndocker compose run --rm -u $(id -u):www-data uwsgi python manage.py check\ndocker compose run --rm -u $(id -u):www-data uwsgi python manage.py migrate\ndocker compose run --rm -u $(id -u):www-data uwsgi python manage.py makemigrations\ndocker compose run --rm -u $(id -u):www-data uwsgi python manage.py migrate\ndocker compose run --rm -u $(id -u):www-data uwsgi python manage.py createsuperuser\n```\n\nThe last commands will prompt for a user creation. This will be a new django\nadmin user, not the database users described in `env` files. Track user credentials\nsince those will be not stored in `.env` file in `shiny-server` directory.\n\n### Check everything works as expected\n\nTest  your fresh InjectTool installation with:\n\n```bash\ndocker compose run --rm -u $(id -u):www-data uwsgi pytest\n```\n\n## Start composed images\n\nPages are served by a NgINX docker container controlled by Docker Compose\n(see the `docker-compose.yml` file content), which is linked to the shiny\nserver and django instance. In order to start the application:\n\n```bash\ndocker compose up -d\n```\n\nThe shiny-server interface is available for a local access through Internet browser\nat the URL: `http://localhost:22080/`.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n## Copyright\n\nCopyright (C) 2020-2025 Paolo Cozzi \u003cpaolo.cozzi@ibba.cnr.it\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnr-ibba%2Fshiny-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnr-ibba%2Fshiny-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnr-ibba%2Fshiny-server/lists"}