• Stars
    star
    242
  • Rank 167,048 (Top 4 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Web UI for Dokku

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:
  1. Setup the Let's Encrypt plugin to auto-renew (dokku letsencrypt:cron-job --add)
  2. Create the app (dokku apps:create wharf)
  3. 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
  1. Add Redis (dokku redis:create wharf && dokku redis:link wharf wharf)
  2. Add Postgres (dokku postgres:create wharf && dokku postgres:link wharf wharf)
  3. Set ADMIN_PASSWORD to something secret (dokku config:set wharf ADMIN_PASSWORD=somesecret)
  4. 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 docker/for-linux#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/

More Repositories

1

maiden

Rockstar interpreter in Rust
Rust
46
star
2

terraform-provider-helloworld

Demo Terraform Provider in Rust
Rust
31
star
3

rhythmbox-tray-icon

Tray icon for Rhythmbox 3+
Python
20
star
4

guix-vm

Scripts and support necessary to make a GuixSD Virtualbox image
Ruby
20
star
5

herder

Automagic scheduling of a convention
Clojure
13
star
6

actix_lambda

Runs your actix-web app as a lambda app that will respond to Application Load Balancer requests
Rust
13
star
7

wait-for-db

Tool to wait until a database is up and responding to a query
Rust
12
star
8

discord-apt

APT repository for Discord
Python
10
star
9

potboiler

AP Event Sourcing system
Rust
8
star
10

panel-applet-generator

Gnome panel applet generator
Python
7
star
11

beeminder-calendar

Generator for "fail days calendar" for Beeminder
HTML
7
star
12

dawn

London buses search
Rust
6
star
13

cavalcade

AMQP broker backed by PostgreSQL
Rust
6
star
14

book-blog

Makes Kindle books from a blog
Python
6
star
15

comicsgrab

Webcomics grabber
Python
5
star
16

raspberry-chef

Chef bootstrap for Raspberry Pi
Ruby
5
star
17

postcode

Android postcode finder
Java
5
star
18

paracrine

A system deployment tool
Python
5
star
19

clostridium

Befunge interpreter in Clojure(script)
Clojure
5
star
20

NAntScript

NAntScript provides custom tasks that allow you to script other custom tasks using regular NAnt script.
C#
5
star
21

dotfiles

My .dotfiles for homedirs
Nix
3
star
22

cgkit-debian

A copy of cgkit that's buildable under debian
Python
3
star
23

gtkgo

Redirect to current site
3
star
24

phone-to-kindle

Send articles to a Kindle
Python
3
star
25

missing-albums

Missing albums finder
Python
3
star
26

xkcd-kindle

Adding a nicely formatted copy of all the XKCD strips to my Kindle
Python
3
star
27

twitter-link-feed

RSS Feed of links from Twitter
Python
3
star
28

epgrabber

Automagic TV episodes torrent searcher and downloader
Python
3
star
29

dh-builddep-metapackage

Build build-dependency metapackages for Debian
Python
3
star
30

gasconade

Making blog posts for Twitter users
Rust
3
star
31

docket

A tool for adding tasks to Todoist for your Beeminder todo list
Python
3
star
32

clojure-dxf

Clojure DXF library, based off Stani's Python DXF library
Python
3
star
33

paternoster

Keep you going on lifts
Python
3
star
34

LittleBrother

Little Brother script
PHP
3
star
35

datavis

Data visualisation experiments
Python
3
star
36

urlgrab

HTTP(S) grabber with caching
Python
2
star
37

ndoc

Attempting to make ndoc work with modern systems
C#
2
star
38

JourneyPlannerParser

Java classes to parse TfL Journey Planner pages
Java
2
star
39

strife

Discord profile display
Python
2
star
40

TubeJourney

Android app to display Journey Planner data
Java
2
star
41

eslint-plugin-require-prevent-default

Eslint plugin to require preventDefault calls
JavaScript
2
star
42

companionate

QR code login sharing
HTML
2
star
43

murmur

Twitter -> Livejournal posting system
Python
2
star
44

ashuffle-rs

Rust-translated version of https://github.com/joshkunz/ashuffle
Rust
2
star
45

bgg-graph

Boardgame decision graph based on BoardGameGeek data
Python
2
star
46

tailgate

Book Calendar data based off of Goodreads
Python
2
star
47

peacenik

Beatnik language tools
Rust
2
star
48

munger

Tooling for making a scan-to-cloud setup
Python
2
star
49

nearby_art

"Nearby Art" finder using V&A Api
Python
2
star
50

godroid

An application for Android to play the strategic board game Go against the GPL Go engine GNU Go
C
2
star
51

mopidy-tachikoma

Mopidy extension for talking to Slack
Python
1
star
52

kitling

Moving Kittens As A Service
Python
1
star
53

timetracker-widget

Timetracker Widget
Ruby
1
star
54

sked

Manage everyone's access to your calendars
Python
1
star
55

gmail-notify

An improved version of http://gmail-notify.sourceforge.net/ (system notifications, non-custom tray icon code)
Python
1
star
56

kickstarter-starred

Calendar of end dates for all starred Kickstarter projects
Clojure
1
star
57

vellere

Github vulnerability notifier for Slack
Python
1
star
58

fbsync

Facebook/image folders synchronisation tool
Python
1
star
59

obama-posters

Obama posters grid
1
star
60

phplib

Copy of https://secure.mysociety.org/cvstrac/dir?d=mysociety/phplib
PHP
1
star
61

palfrey

Github profile page
Python
1
star
62

on-infrastructure

Demo infrastructure setup
Python
1
star
63

tumblr-tag-generator

A generator of Tumblr blogs based on a tag to search for
Clojure
1
star
64

tuvix

Experimental hermetic build engine with Starlark
Rust
1
star
65

palfrey.github.com

1
star
66

microbit-blink

Experimental Micro:bit work
C++
1
star
67

waveform-necklace

Waveform Necklace generator
HTML
1
star
68

Travel_compare

Python
1
star
69

spaceteam-timer

Timer app for the Spaceteam card game
Dart
1
star
70

twitux

A fork of https://sourceforge.net/projects/twitux with extra mods
C
1
star
71

twfy

TheyWorkForYou.com Debian packaging
PHP
1
star
72

panegyric

Wordpress plugin for displaying Pull Requests
PHP
1
star
73

hue-experiments

Experimenting with a Philips Hue
Python
1
star
74

tavern

Initial work towards a virtual pub
TypeScript
1
star
75

pyro

Semi-automated "human in the loop" bug triager for Bugzilla systems
C#
1
star
76

calendars

Various PHP calendar code, used to generate new/fixed iCal files for various websites
PHP
1
star
77

eventbrite-calendar

Eventbrite Calendar exporter
Python
1
star
78

palfrey-projects

Random projects stored on http://palfrey-projects.appspot.com/
Python
1
star
79

moves-beeminder

Importer for Moves data into Beeminder
Clojure
1
star