Need help with wharf?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

palfrey
207 Stars 23 Forks GNU Affero General Public License v3.0 301 Commits 14 Opened issues

Description

Web UI for Dokku

Services available

!
?

Need anything else?

Contributors list

# 30,717
Rust
Django
Vue.js
yaml-pa...
201 commits
# 2,435
civic-t...
Qt
python-...
prose
20 commits
# 3,913
HTML
CSS
React
ESLint
1 commit
# 749
GitHub
rust-la...
wechat-...
query-l...
1 commit

Wharf

CI

Wharf is an opinionated web frontend for Dokku. You can also use the command line version, but most features you'll need day-to-day are in the Web UI

Screenshots

Setup

  1. Install Dokku (versions up to 0.19.13, see #78)
  2. Install the following plugins:
    • https://github.com/dokku/dokku-redis (versions up to 1.10.4, see #75)
    • https://github.com/dokku/dokku-postgres (versions up to 1.9.5, see #75)
    • https://github.com/dokku/dokku-letsencrypt (versions up to 0.9.4 see #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

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. 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 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/

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.