Docksible
About
Install a Dockerized web app on a given remote VPS, with a single command in your local CLI - powered by Ansible.
Supports SSL, so it's perfect for quick demo servers, or even lightweight production environments.
You can also install on localhost or local VMs, perfect for local experiments with different types of apps.
Features
- WordPress
- Joomla
- Redmine (open source issue tracker)
- "Custom app" - you simply provide a valid container name (from Docker Hub),
and any required app specific environment variables (via
--extra-env-vars), and it should work. - SSL certs, including test certs
- SSH proxy to tunnel hidden services like database
- phpMyAdmin container
- Hopefully more soon ;-)
Requirements
- Local: Unix with Python 3.9 or newer. Tested this on Gentoo and Ubuntu Linux. Might work on macOS, but I don't know. Won't work on Windows, because it uses Ansible under the hood, which AFAIK is not supported for Windows.
- Remote: VPS running Ubuntu, or maybe other Debian based flavor, reachable via SSH. It should probably work on all Debian distros, but I have only tested on Ubuntu.
Installing
Intall with Pip: python -m pip install docksible
Usage
These examples should be self explanatory:
docksible user@example.com wordpress --letsencrypt --email admin@example.comdocksible user@example.com redmine --letsencrypt --email admin@example.com
Run the --help flag for all supported options.
Using the SSH proxy
You can include a simple SSH proxy
into your app's Docker network, by passing the --ssh-proxy flag. This will drop in
a small container that you can use to port forward some hidden services, like the
database. Here's how to do it:
- Include
--ssh-proxyin the Docksible command (ex:docksible user@host wordpress --ssh-proxy) - Set up the proxy service's
authorized_keysfile. This will be improved in the future, but until then:- SSH into your server as root
- Copy root's
.ssh/authorized_keysintodocksible-volumes/ssh-proxy-data/ - Shell into the proxy container, and basically
chown -R proxy_user:proxy_user /home/proxy_user. This could also be improved, but for now, just needs to be done once.
- Now the proxy service is ready to use. For example:
- Set up the tunnel to proxy the database:
ssh -p 2222 proxy_user@yourserver.com -L 9000:docksible_db:3306- Connect to the database:
mysql -u your_db_user -p --port=9000 --host=localhost --protocol=TCP
Metadata
Release files for docksible 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docksible-1.0.1.tar.gz | 17.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docksible-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.1 kB
Release files / docksible-1.0.1.tar.gz
| Download URL | docksible-1.0.1.tar.gz |
|---|---|
| Size | 17.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
905784f7820e4755693a094b7cd4eb9cf4ec417715536b2dca529bd35736955a
|
|
BLAKE2b-256 checksum How to use checksums |
d31c971d1e534bf3c28c5b894944138d5ec1d7554d5aa26ab1fb5ad3bfc78ac7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / docksible-1.0.1-py3-none-any.whl
| Download URL | docksible-1.0.1-py3-none-any.whl |
|---|---|
| Size | 21.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12f45862c0975cd813e6c7ee14272d30ba4c8be40c9d9ff79acc95dc4d057ad0
|
|
BLAKE2b-256 checksum How to use checksums |
3ef9a76c32a81dd0f44877e7795e42bb29e1950b42db4624425fbacf51ecb239
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|