Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/palfrey/wharf
Web UI for Dokku
https://github.com/palfrey/wharf
dokku hacktoberfest
Last synced: 15 days ago
JSON representation
Web UI for Dokku
- Host: GitHub
- URL: https://github.com/palfrey/wharf
- Owner: palfrey
- License: agpl-3.0
- Created: 2018-02-25T16:42:49.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T22:03:17.000Z (over 1 year ago)
- Last Synced: 2024-10-26T09:28:48.805Z (18 days ago)
- Topics: dokku, hacktoberfest
- Language: Python
- Homepage: https://tevps.net/blog/2018/2/28/wharf-dokku-web-frontend/
- Size: 5.35 MB
- Stars: 248
- Watchers: 6
- Forks: 21
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Wharf
=====
[![CI](https://github.com/palfrey/wharf/workflows/CI/badge.svg)](https://github.com/palfrey/wharf/actions)Wharf is an opinionated web frontend for [Dokku](http://dokku.viewdocs.io/dokku/). You can also use the command line version, but most features you'll need day-to-day are in the Web UI
Setup
-----
1. [Install Dokku](http://dokku.viewdocs.io/dokku/getting-started/installation) (versions up to 0.19.13, see [#78](https://github.com/palfrey/wharf/issues/78))
2. Install the following plugins:
* https://github.com/dokku/dokku-redis (versions up to 1.10.4, see [#75](https://github.com/palfrey/wharf/issues/75))
* https://github.com/dokku/dokku-postgres (versions up to 1.9.5, see [#75](https://github.com/palfrey/wharf/issues/75))
* https://github.com/dokku/dokku-letsencrypt (versions up to 0.9.4 see [#115](https://github.com/palfrey/wharf/issues/115))
3. Setup the Let's Encrypt plugin to auto-renew (`dokku letsencrypt:cron-job --add`)
4. Create the app (`dokku apps:create wharf`)
5. Add SSH key storage:
* `mkdir /var/lib/dokku/data/storage/wharf-ssh/`
* `chown dokku:dokku /var/lib/dokku/data/storage/wharf-ssh/`
* `dokku storage:mount wharf /var/lib/dokku/data/storage/wharf-ssh/:/root/.ssh`
6. Add Redis (`dokku redis:create wharf && dokku redis:link wharf wharf`)
7. Add Postgres (`dokku postgres:create wharf && dokku postgres:link wharf wharf`)
8. Set `ADMIN_PASSWORD` to something secret (`dokku config:set wharf ADMIN_PASSWORD=somesecret`)
9. Deploy this Git repo [as per the standard Dokku instructions](http://dokku.viewdocs.io/dokku/deployment/application-deployment/)Helpful hints
-------------
* If you're running SSH on a non-standard port, set `DOKKU_SSH_PORT` e.g. `dokku config:set wharf DOKKU_SSH_PORT=2222`
* If Dokku is running somewhere else than the local machine, set `DOKKU_SSH_HOST` e.g. `dokku config:set wharf DOKKU_SSH_HOST=foo.example.com`
* If there's a Dockerfile in your repository, it'll [try and deploy using that by default](http://dokku.viewdocs.io/dokku/deployment/methods/dockerfiles/). Set BUILDPACK_URL to override
* BUILDPACK_URL should be an HTTPS one, not a SSH or heroku/something one
* You should setup the global domain name when creating Dokku to start with and add a *.<your dokku domain> entry to give new apps more usable names.Enabling Github auto-deploy webhooks
------------------------------------
1. Set `GITHUB_SECRET` config item to something secret
2. Goto [settings/webhooks](https://developer.github.com/webhooks/creating/#setting-up-a-webhook) in Github
3. Make a new webhook for <your Wharf instance>/webhook with Content type as `application/json` and Secret to the secret from `GITHUB_SECRET`Development
-----------
Easiest way to do dev is:1. `vagrant up` which will boot the entire Dokku setup in a VM
2. `DOKKU_SSH_HOST=host.docker.internal DOKKU_SSH_PORT=2222 docker-compose up`
* `host.docker.internal` works on Mac/Windows, but not on Linux (see https://github.com/docker/for-linux/issues/264). On Linux hosts, you should set `DOKKU_SSH_HOST` to whatever your IP is (not localhost, but a local IP is fine)
3. Load up `http://localhost:8000/`