- Shell 42.2%
- Go 22.4%
- Just 14.6%
- Dockerfile 12.8%
- Python 5.2%
- Other 2.8%
| .github/workflows | ||
| cmd/rosti | ||
| etc | ||
| examples | ||
| scripts | ||
| .drone.off.yml | ||
| .gitignore | ||
| activate_tech.fish | ||
| build_bun.sh | ||
| build_deno.sh | ||
| build_golang.sh | ||
| build_node.sh | ||
| build_openjdk.sh | ||
| build_php.sh | ||
| build_php8.sh | ||
| build_python.sh | ||
| build_ruby.sh | ||
| build_techs.py | ||
| Dockerfile | ||
| generate_versions.py | ||
| go.mod | ||
| go.sum | ||
| Justfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| rjust | ||
| rosti-actions.sh | ||
| start.sh | ||
| Taskfile.yml | ||
| teams_message3.json | ||
| techs.json | ||
| tests2.sh | ||
Roští.cz Runtime
Runtime image designed for our hosting service. It's designed for multiple versions of Node.js, PHP and Python interpreters. It runs SSH, cron daemon and supervisord as process manager.
The goal of the image is to deliver versatile environment different kind of applications.
The image is based on Debian 10 Buster and it's size is around 2.5 GB when it's squashed.
** Supported languages **
- Python 3.8.2
- Python 3.8.5
- Node.js 13.12.0
- Node.js 14.8.0
- Node.js 12.14.1
- Node.js 12.16.1
- PHP 7.4.4
- PHP 7.4.9
** Additional tools **
- Memcached
- Redis
- crond
- Supervisord
- Nginx
- Dropbear
Test
To run tests you can check integrated workflow, but all you need are those two commands:
make test
If you prefer Podman, use this command to build the image:
make DOCKER=podman test
This is useful in Fedora.
Development builds
The full build compiles or downloads every supported technology. For faster debugging you can skip selected technologies with build arguments:
task build BUILD_PHP=0 BUILD_PYTHON=0 BUILD_RUBY=0
For the fastest image, use the development preset. It disables all technology builds by default:
task dev
You can re-enable only the runtime you need:
task dev BUILD_NODE=1
Supported technology versions, labels, build scripts, extra build arguments, and default versions are configured in techs.json.
Runtime configuration tool
The rosti command is a Bubble Tea based TUI when run without arguments. It keeps the non-interactive CLI interface for automation:
rosti node
rosti node 25.9.0
rosti redis
The TUI binary delegates environment changes to rosti-actions.sh so the setup behavior stays shared between interactive and CLI modes.
Additional info
Default user
Image uses system user app to run the application code.
SSH password
The image runs dropbear at start along crond and supervisord. If you want to set password for next start of the container, save it into this file:
/srv/.rosti
Dynamically it can be set like this:
echo "app:PASSWORD" | chpasswd