Giter Club home page Giter Club logo

wharf's Introduction

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/

wharf's People

Contributors

dependabot[bot] avatar palfrey avatar pyup-bot avatar wesbos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wharf's Issues

Successfully deployed Wharf but it returns 500

I'm trying to setup wharf for the first time on my VPS, and after following some guides, i have managed to successfully deploy the app, but when i try to access it, i get an error 500.
image

After reading the logs, i could not find the source of this problem...
image

It's probably some newbie mistake, but i have no clue on how to solve it...

Adding new apps fails

2018-03-28T09:52:12.851021358Z app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
2018-03-28T09:52:12.851043374Z app[web.1]:     response = get_response(request)
2018-03-28T09:52:12.851064526Z app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
2018-03-28T09:52:12.851086292Z app[web.1]:     response = self.process_exception_by_middleware(e, request)
2018-03-28T09:52:12.851107676Z app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
2018-03-28T09:52:12.851129211Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2018-03-28T09:52:12.851150645Z app[web.1]:   File "/app/apps/views.py", line 71, in wait_for_command
2018-03-28T09:52:12.851171698Z app[web.1]:     app = models.App.objects.get(name=app_name)
2018-03-28T09:52:12.851192641Z app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
2018-03-28T09:52:12.851214046Z app[web.1]:     return getattr(self.get_queryset(), name)(*args, **kwargs)
2018-03-28T09:52:12.851235039Z app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/query.py", line 403, in get
2018-03-28T09:52:12.851256654Z app[web.1]:     self.model._meta.object_name
2018-03-28T09:52:12.852006794Z app[web.1]: apps.models.DoesNotExist: App matching query does not exist.```

can't deploy wharf

I've just fired up a new digitalocean dokku instance (ubuntu 18.04, dokku 0.17.9) and wharf is now failing to deploy with the following error:

$ git push dokku
Enumerating objects: 962, done.
Counting objects: 100% (962/962), done.
Delta compression using up to 8 threads
Compressing objects: 100% (415/415), done.
Writing objects: 100% (962/962), 394.20 KiB | 8.57 MiB/s, done.
Total 962 (delta 628), reused 778 (delta 528)
remote: Resolving deltas: 100% (628/628), done.
-----> Cleaning up...
-----> Building wharf from dockerfile...
remote: build context to Docker daemon  433.2kB
Step 1/5 : FROM python:3.6
 ---> c4f7d42f7b89
Step 2/5 : WORKDIR /app
 ---> Using cache
 ---> f979db26d28a
Step 3/5 : COPY requirements.txt /app
 ---> f2a7b174af92
Step 4/5 : RUN pip install -r requirements.txt
 ---> Running in 3819e0af2f8c
Obtaining django-jinja from git+https://github.com/niwinz/django-jinja.git@819a5faddea5341d990ac337b05e7827ac5b4431#egg=django-jinja (from -r requirements.txt (line 7))
  Cloning https://github.com/niwinz/django-jinja.git (to revision 819a5faddea5341d990ac337b05e7827ac5b4431) to ./src/django-jinja
  Running command git clone -q https://github.com/niwinz/django-jinja.git /app/src/django-jinja
  Running command git checkout -q 819a5faddea5341d990ac337b05e7827ac5b4431
Collecting amqp==2.3.2
  Downloading amqp-2.3.2-py2.py3-none-any.whl (48 kB)
Collecting asgiref==3.2.3
  Downloading asgiref-3.2.3-py2.py3-none-any.whl (18 kB)
Collecting asn1crypto==0.24.0
  Downloading asn1crypto-0.24.0-py2.py3-none-any.whl (101 kB)
Collecting bcrypt==3.1.4
  Downloading bcrypt-3.1.4-cp36-cp36m-manylinux1_x86_64.whl (54 kB)
Collecting billiard==3.5.0.3
  Downloading billiard-3.5.0.3-py3-none-any.whl (89 kB)
Collecting celery[redis]==4.1.1
  Downloading celery-4.1.1-py2.py3-none-any.whl (394 kB)
Collecting certifi==2018.4.16
  Downloading certifi-2018.4.16-py2.py3-none-any.whl (150 kB)
Collecting cffi==1.11.5
  Downloading cffi-1.11.5-cp36-cp36m-manylinux1_x86_64.whl (421 kB)
Collecting chardet==3.0.4
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting cryptography==2.3
  Downloading cryptography-2.3-cp34-abi3-manylinux1_x86_64.whl (2.1 MB)
Collecting dj-database-url==0.5.0
  Downloading dj_database_url-0.5.0-py2.py3-none-any.whl (5.5 kB)
Collecting django-celery-results==1.0.1
  Downloading django_celery_results-1.0.1-py2.py3-none-any.whl (12 kB)
Collecting django-jinja-bootstrap-form==4.2.3
  Downloading django_jinja_bootstrap_form-4.2.3-py36-none-any.whl (7.8 kB)
Collecting django-redis==4.11.0
  Downloading django_redis-4.11.0-py3-none-any.whl (18 kB)
Collecting django==3.0.3
  Downloading Django-3.0.3-py3-none-any.whl (7.5 MB)
Collecting gitdb2==2.0.3
  Downloading gitdb2-2.0.3-py2.py3-none-any.whl (63 kB)
Collecting gitpython==2.1.10
  Downloading GitPython-2.1.10-py2.py3-none-any.whl (449 kB)
Collecting humanize==0.5.1
  Downloading humanize-0.5.1.tar.gz (14 kB)
Collecting idna==2.6
  Downloading idna-2.6-py2.py3-none-any.whl (56 kB)
Collecting jinja2==2.10.1
  Downloading Jinja2-2.10.1-py2.py3-none-any.whl (124 kB)
Collecting kombu==4.2.1
  Downloading kombu-4.2.1-py2.py3-none-any.whl (177 kB)
Collecting markupsafe==1.0
  Downloading MarkupSafe-1.0.tar.gz (14 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-zhzrprbs/markupsafe/setup.py'"'"'; __file__='"'"'/tmp/pip-install-zhzrprbs/markupsafe/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-zhzrprbs/markupsafe/pip-egg-info
         cwd: /tmp/pip-install-zhzrprbs/markupsafe/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-zhzrprbs/markupsafe/setup.py", line 6, in <module>
        from setuptools import setup, Extension, Feature
    ImportError: cannot import name 'Feature'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
remote: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
remote:
To <serverip>:wharf
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@<serverip>:wharf'

Cant deploy Wharf

Hi there,

I keep getting this while deploying Wharf in a newly installed Dokku instance. Same process we have done before with no issues:

! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:wharf'

Any hints please?

Cheers.

Successfully deployed Wharf but it returns 500

Hi, I'd like to use Wharf on my server that runs dokku.
I keep getting a 500 error for the homepage, after login, and I can't find anything on the logs.
image

Kindly help suggest fixes. Thanks

Internal Server Error when trying to open app details

Following on from #33, I've now got Wharf installed and showing the apps running on Dokku. However, clicking on any one of those apps returns a very plain 500 error:
image
I'm beginning to get a handle on the way things work, so I got the logs up in Dokku, which has this error showing:

2019-02-05T17:20:42.460389257Z app[web.1]: Internal Server Error: /apps/wharf
2019-02-05T17:20:42.460444396Z app[web.1]: Traceback (most recent call last):
2019-02-05T17:20:42.460468240Z app[web.1]:   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
2019-02-05T17:20:42.460494711Z app[web.1]:     response = get_response(request)
2019-02-05T17:20:42.460517079Z app[web.1]:   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 126, in _get_response
2019-02-05T17:20:42.460573670Z app[web.1]:     response = self.process_exception_by_middleware(e, request)
2019-02-05T17:20:42.460596134Z app[web.1]:   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 124, in _get_response
2019-02-05T17:20:42.460618837Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2019-02-05T17:20:42.460640077Z app[web.1]:   File "/app/apps/views.py", line 285, in app_info
2019-02-05T17:20:42.460660980Z app[web.1]:     app = models.App.objects.get(name=app_name)
2019-02-05T17:20:42.460681740Z app[web.1]:   File "/usr/local/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
2019-02-05T17:20:42.460703148Z app[web.1]:     return getattr(self.get_queryset(), name)(*args, **kwargs)
2019-02-05T17:20:42.460723991Z app[web.1]:   File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 399, in get
2019-02-05T17:20:42.460745555Z app[web.1]:     self.model._meta.object_name
2019-02-05T17:20:42.460766027Z app[web.1]: apps.models.App.DoesNotExist: App matching query does not exist.
2019-02-05T17:20:42.463751118Z app[web.1]: "GET /apps/wharf HTTP/1.1" 500 27

This is true for all the apps I have under Dokku.

Trying to add a new config:set key/value appears initially to work, but the page refreshes and I get that 500 error again. It also happens when trying to create a new app - a brief flash that suggests that it might be working, followed by a 500.

I've followed the whole setup procedure (several times now, as I've been trying things out), so Redis, SSH key storage, etc are all taken care of. Is there anything more I can try that will help clear this?

Internal Server Error when inspecting an app

Logs show this:

2020-04-03T10:49:14.693543676Z app[web.1]: Internal Server Error: /apps/wharf
2020-04-03T10:49:14.693586990Z app[web.1]: Traceback (most recent call last):
2020-04-03T10:49:14.693593638Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
2020-04-03T10:49:14.693598464Z app[web.1]:     response = get_response(request)
2020-04-03T10:49:14.693602635Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
2020-04-03T10:49:14.693607170Z app[web.1]:     response = self.process_exception_by_middleware(e, request)
2020-04-03T10:49:14.693611397Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
2020-04-03T10:49:14.693615797Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2020-04-03T10:49:14.693619949Z app[web.1]:   File "/app/apps/views.py", line 304, in app_info
2020-04-03T10:49:14.693624000Z app[web.1]:     'postgres': postgres_list(app_name),
2020-04-03T10:49:14.693628007Z app[web.1]:   File "/app/apps/views.py", line 221, in postgres_list
2020-04-03T10:49:14.693654202Z app[web.1]:     return db_list(app_name, data)
2020-04-03T10:49:14.693661382Z app[web.1]:   File "/app/apps/views.py", line 216, in db_list
2020-04-03T10:49:14.693665327Z app[web.1]:     return generic_list(app_name, data, "NAME", ["NAME", "VERSION", "STATUS", "EXPOSED PORTS", "LINKS"])
2020-04-03T10:49:14.693669990Z app[web.1]:   File "/app/apps/views.py", line 192, in generic_list
2020-04-03T10:49:14.693674047Z app[web.1]:     raise Exception("Can't find '%s' in '%s'" % (f, lines[0].strip()))
2020-04-03T10:49:14.693677785Z app[web.1]: Exception: Can't find 'NAME' in '=====> Postgres services'
2020-04-03T10:49:14.694902522Z app[web.1]: "GET /apps/wharf HTTP/1.1" 500 145

If you make an extra app things go very wrong

If you make a new app, and there's already one with that name, the Django app ends up with multiple ones of the same name. Refreshing the dokku info doesn't clear them out, even if you manually delete them at the CLI

wharf took over root domain

I followed the instructions exactly. No errors. After install of wharf, I tried to navigate to wharf.garden.mysite.com but it did not work. I decided to try to install letsencrypt since I'm using cloudflare and thought maybe it didn't get generated due to dns proxy. I ran dokku letsencrypt wharf which seemed to succeed. When I tried to visit the address, I kept getting: SSL_ERROR_NO_CYPHER_OVERLAP error in browser.

I then randomly tried to visit my root domain as mysite.com and was presented with the wharf login page:

image

Oh nohs! He has my base :(

Need an option to clear build history/wipe logs

After a few months of using Wharf, something generally just breaks and it refuses to deploy my app anymore, resulting in me needing to do a full deploy of wharf again, from scratch. Otherwise all of my tasks sit in PENDING.

Internal Server Error when trying to open app details

First I would like to say thank's for the great work.
The error that I am facing is related with the postgres, firstly I had change my postgres plugin version to postgres:12, so I saw an issue that it says that the Postgres plugin version should be >1.9.5. So I've created another dockerfile with the same postgres image being used on the plugin, which is 11.6 and still so I am facing the same error, would you have any guess?

image

deployment fails

Scroll to the bottom for the error

C:\Users\User\Downloads\wharf-master>git push dokku master
Enumerating objects: 52, done.
Counting objects: 100% (52/52), done.
Delta compression using up to 8 threads
Compressing objects: 100% (48/48), done.
Writing objects: 100% (52/52), 37.13 KiB | 1.86 MiB/s, done.
Total 52 (delta 0), reused 0 (delta 0)
remote: -----> Cleaning up...
remote: -----> Building wharf from dockerfile...
remote: Sending build context to Docker daemon 139.8kB
remote: Step 1/8 : FROM python:3.6
remote: 3.6: Pulling from library/python
remote: 16ea0e8c8879: Pulling fs layer
remote: 50024b0106d5: Pulling fs layer
remote: ff95660c6937: Pulling fs layer
remote: 9c7d0e5c0bc2: Pulling fs layer
remote: 29c4fb388fdf: Pulling fs layer
remote: 49a8841b38a3: Pulling fs layer
remote: c4a74b0ecce5: Pulling fs layer
remote: 3e19e7d95a0c: Pulling fs layer
remote: c6c6b4054fe6: Pulling fs layer
remote: 9c7d0e5c0bc2: Waiting
remote: 29c4fb388fdf: Waiting
remote: 49a8841b38a3: Waiting
remote: c4a74b0ecce5: Waiting
remote: 3e19e7d95a0c: Waiting
remote: c6c6b4054fe6: Waiting
remote: ff95660c6937: Verifying Checksum
remote: ff95660c6937: Download complete
remote: 50024b0106d5: Verifying Checksum
remote: 50024b0106d5: Download complete
remote: 16ea0e8c8879: Verifying Checksum
remote: 16ea0e8c8879: Download complete
remote: 49a8841b38a3: Verifying Checksum
remote: 49a8841b38a3: Download complete
remote: 9c7d0e5c0bc2: Verifying Checksum
remote: 9c7d0e5c0bc2: Download complete
remote: 3e19e7d95a0c: Verifying Checksum
remote: 3e19e7d95a0c: Download complete
remote: 16ea0e8c8879: Pull complete
remote: c4a74b0ecce5: Verifying Checksum
remote: c4a74b0ecce5: Download complete
remote: c6c6b4054fe6: Verifying Checksum
remote: c6c6b4054fe6: Download complete
remote: 50024b0106d5: Pull complete
remote: ff95660c6937: Pull complete
remote: 29c4fb388fdf: Verifying Checksum
remote: 29c4fb388fdf: Download complete
remote: 9c7d0e5c0bc2: Pull complete
remote: 29c4fb388fdf: Pull complete
remote: 49a8841b38a3: Pull complete
remote: c4a74b0ecce5: Pull complete
remote: 3e19e7d95a0c: Pull complete
remote: c6c6b4054fe6: Pull complete
remote: Digest: sha256:47e547af7ffcc2f5d1e5c76a96f4122943c4631d10bb3a0375e870fd95799107
remote: Status: Downloaded newer image for python:3.6
remote: ---> 5bf410ee7bb2
remote: Step 2/8 : WORKDIR /app
remote: ---> Running in 2503c2f09b58
remote: Removing intermediate container 2503c2f09b58
remote: ---> a1fc57a8fd2a
remote: Step 3/8 : COPY requirements.txt /app
remote: ---> 637d0106a52a
remote: Step 4/8 : RUN pip install -r requirements.txt
remote: ---> Running in 189cc3c8f3e1
remote: Collecting amqp==2.3.2
remote: Downloading https://files.pythonhosted.org/packages/7f/cf/12d4611fc67babd4ae250c9e8249c5650ae1933395488e9e7e3562b4ff24/amqp-2.3.2-py2.py3-none-any.whl (48kB)
remote: Collecting asn1crypto==0.24.0
remote: Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)
remote: Collecting bcrypt==3.1.4
remote: Downloading https://files.pythonhosted.org/packages/b8/09/905ec939994e2c49dcffff72f823802557f166b3815ea54c1db3671eed42/bcrypt-3.1.4-cp36-cp36m-manylinux1_x86_64.whl (54kB)
remote: Collecting billiard==3.5.0.3
remote: Downloading https://files.pythonhosted.org/packages/82/55/76f4e786141b7174926cdffa7a155aeea316b729118fb48ec548f3c6754f/billiard-3.5.0.3-py3-none-any.whl (89kB)
remote: Collecting celery[redis]==4.1.1
remote: Downloading https://files.pythonhosted.org/packages/99/fa/4049b26bfe71992ecf979acd39b87e55b493608613054089d975418015b7/celery-4.1.1-py2.py3-none-any.whl (394kB)
remote: Collecting certifi==2018.4.16
remote: Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB)
remote: Collecting cffi==1.11.5
remote: Downloading https://files.pythonhosted.org/packages/6d/c0/47db8f624f3e4e2f3f27be03a93379d1ba16a1450a7b1aacfa0366e2c0dd/cffi-1.11.5-cp36-cp36m-manylinux1_x86_64.whl (421kB)
remote: Collecting chardet==3.0.4
remote: Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
remote: Collecting cryptography==2.3
remote: Downloading https://files.pythonhosted.org/packages/c2/fa/fa9a8933c285895935d1392922fe721e9cb1b2c1881d14f149213a227ee3/cryptography-2.3-cp34-abi3-manylinux1_x86_64.whl (2.1MB)
remote: Collecting dj-database-url==0.5.0
remote: Downloading https://files.pythonhosted.org/packages/d4/a6/4b8578c1848690d0c307c7c0596af2077536c9ef2a04d42b00fabaa7e49d/dj_database_url-0.5.0-py2.py3-none-any.whl
remote: Collecting django-celery-results==1.0.1
remote: Downloading https://files.pythonhosted.org/packages/8d/82/4ede39c945811ffea9de29c5d312e1ab84352c3b01a290f9dce81614567d/django_celery_results-1.0.1-py2.py3-none-any.whl
remote: Collecting django-jinja-bootstrap-form==4.2.3
remote: Downloading https://files.pythonhosted.org/packages/89/89/6ada8afd2606d3ffefd2543a70acab2fee3d5a617406de3f599ee118f502/django_jinja_bootstrap_form-4.2.3-py36-none-any.whl
remote: Collecting django-jinja==2.4.1
remote: Downloading https://files.pythonhosted.org/packages/a3/0c/df6197ae0ce8bd0f1701929ff3448c5384ca258c2ebfb4244d09e82f0bf3/django_jinja-2.4.1-py2.py3-none-any.whl
remote: Collecting django-redis==4.9.0
remote: Downloading https://files.pythonhosted.org/packages/d5/3c/184b7a962f2aa5e49388ced9664a308b8d1b9864dc6afe7adb2a8302b5c4/django_redis-4.9.0-py2.py3-none-any.whl
remote: Collecting django==2.1.11
remote: Downloading https://files.pythonhosted.org/packages/8c/49/d5038239995594281478bf209f8d93524ad342d500009a697b27f884668a/Django-2.1.11-py3-none-any.whl (7.3MB)
remote: Collecting gitdb2==2.0.3
remote: Downloading https://files.pythonhosted.org/packages/e0/95/c772c13b7c5740ec1a0924250e6defbf5dfdaee76a50d1c47f9c51f1cabb/gitdb2-2.0.3-py2.py3-none-any.whl (63kB)
remote: Collecting gitpython==2.1.10
remote: Downloading https://files.pythonhosted.org/packages/ac/c9/96d7c86c623cb065976e58c0f4898170507724d6b4be872891d763d686f4/GitPython-2.1.10-py2.py3-none-any.whl (449kB)
remote: Collecting humanize==0.5.1
remote: Downloading https://files.pythonhosted.org/packages/8c/e0/e512e4ac6d091fc990bbe13f9e0378f34cf6eecd1c6c268c9e598dcf5bb9/humanize-0.5.1.tar.gz
remote: Collecting idna==2.6
remote: Downloading https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl (56kB)
remote: Collecting jinja2==2.10.1
remote: Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)
remote: Collecting kombu==4.2.1
remote: Downloading https://files.pythonhosted.org/packages/97/61/65838c7da048e56d549e358ac19c0979c892e17dc6186610c49531d35b70/kombu-4.2.1-py2.py3-none-any.whl (177kB)
remote: Collecting markupsafe==1.0
remote: Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz
remote: Collecting paramiko==2.4.2
remote: Downloading https://files.pythonhosted.org/packages/cf/ae/94e70d49044ccc234bfdba20114fa947d7ba6eb68a2e452d89b920e62227/paramiko-2.4.2-py2.py3-none-any.whl (193kB)
remote: Collecting psycopg2-binary==2.7.5
remote: Downloading https://files.pythonhosted.org/packages/3f/4e/b9a5cb7c7451029f67f93426cbb5f5bebedc3f9a8b0a470de7d0d7883602/psycopg2_binary-2.7.5-cp36-cp36m-manylinux1_x86_64.whl (2.7MB)
remote: Collecting pyasn1==0.4.3
remote: Downloading https://files.pythonhosted.org/packages/a0/70/2c27740f08e477499ce19eefe05dbcae6f19fdc49e9e82ce4768be0643b9/pyasn1-0.4.3-py2.py3-none-any.whl (72kB)
remote: Collecting pycparser==2.18
remote: Downloading https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz (245kB)
remote: Collecting pynacl==1.2.1
remote: Downloading https://files.pythonhosted.org/packages/77/03/927e4cdbd821f929392608ddb2220a9548ce164c52047e90fadd20786fd8/PyNaCl-1.2.1-cp36-cp36m-manylinux1_x86_64.whl (692kB)
remote: Collecting pytz==2018.4
remote: Downloading https://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl (510kB)
remote: Collecting redis==2.10.6
remote: Downloading https://files.pythonhosted.org/packages/3b/f6/7a76333cf0b9251ecf49efff635015171843d9b977e4ffcf59f9c4428052/redis-2.10.6-py2.py3-none-any.whl (64kB)
remote: Collecting requests==2.20.1
remote: Downloading https://files.pythonhosted.org/packages/ff/17/5cbb026005115301a8fb2f9b0e3e8d32313142fe8b617070e7baad20554f/requests-2.20.1-py2.py3-none-any.whl (57kB)
remote: Collecting selenium==3.141.0
remote: Downloading https://files.pythonhosted.org/packages/80/d6/4294f0b4bce4de0abf13e17190289f9d0613b0a44e5dd6a7f5ca98459853/selenium-3.141.0-py2.py3-none-any.whl (904kB)
remote: Collecting six==1.11.0
remote: Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
remote: Collecting smmap2==2.0.3
remote: Downloading https://files.pythonhosted.org/packages/e3/59/4e22f692e65f5f9271252a8e63f04ce4ad561d4e06192478ee48dfac9611/smmap2-2.0.3-py2.py3-none-any.whl
remote: Collecting timeout-decorator==0.4.1
remote: Downloading https://files.pythonhosted.org/packages/07/1c/0d9adcb848f1690f3253dcb1c1557b6cf229a93e724977cb83f266cbd0ae/timeout-decorator-0.4.1.tar.gz
remote: Collecting urllib3==1.24.3
remote: Downloading https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl (118kB)
remote: Collecting vine==1.1.4
remote: Downloading https://files.pythonhosted.org/packages/10/50/5b1ebe42843c19f35edb15022ecae339fbec6db5b241a7a13c924dabf2a3/vine-1.1.4-py2.py3-none-any.whl
remote: Building wheels for collected packages: humanize, markupsafe, pycparser, timeout-decorator
remote: Building wheel for humanize (setup.py): started
remote: Building wheel for humanize (setup.py): finished with status 'done'
remote: Created wheel for humanize: filename=humanize-0.5.1-cp36-none-any.whl size=17901 sha256=f5435ca3ca29c9229126b97fe81ba87568070f23fb7957e1e3c881b26a06d4c5
remote: Stored in directory: /root/.cache/pip/wheels/69/86/6c/f8b8593bc273ec4b0c653d3827f7482bb2001a2781a73b7f44
remote: Building wheel for markupsafe (setup.py): started
remote: Building wheel for markupsafe (setup.py): finished with status 'done'
remote: Created wheel for markupsafe: filename=MarkupSafe-1.0-cp36-cp36m-linux_x86_64.whl size=29873 sha256=ac55c4b9aec6e95adc06171e923f575176c543c3a37fd7ed8d04b55456b5ac35
remote: Stored in directory: /root/.cache/pip/wheels/33/56/20/ebe49a5c612fffe1c5a632146b16596f9e64676768661e4e46
remote: Building wheel for pycparser (setup.py): started
remote: Building wheel for pycparser (setup.py): finished with status 'done'
remote: Created wheel for pycparser: filename=pycparser-2.18-py2.py3-none-any.whl size=206687 sha256=b8cc45a00df35504fdb7beaab03891e4ba71acd407e7e11c34ed7e9b5d28fe38
remote: Stored in directory: /root/.cache/pip/wheels/c0/a1/27/5ba234bd77ea5a290cbf6d675259ec52293193467a12ef1f46
remote: Building wheel for timeout-decorator (setup.py): started
remote: Building wheel for timeout-decorator (setup.py): finished with status 'done'
remote: Created wheel for timeout-decorator: filename=timeout_decorator-0.4.1-cp36-none-any.whl size=5019 sha256=48ccb7dc480680a20223470526f62937518decc367028cba14982bc87bb93e00
remote: Stored in directory: /root/.cache/pip/wheels/f1/e6/ea/7387e3629cb46ba65140141f972745b823f4486c6fe884ccb8
remote: Successfully built humanize markupsafe pycparser timeout-decorator
remote: Installing collected packages: vine, amqp, asn1crypto, pycparser, cffi, six, bcrypt, billiard, kombu, pytz, redis,
celery, certifi, chardet, idna, cryptography, dj-database-url, django-celery-results, django, markupsafe, jinja2, django-jinja, django-jinja-bootstrap-form, django-redis, smmap2, gitdb2, gitpython, humanize, pynacl, pyasn1, paramiko, psycopg2-binary, urllib3, requests, selenium, timeout-decorator
remote: Successfully installed amqp-2.3.2 asn1crypto-0.24.0 bcrypt-3.1.4 billiard-3.5.0.3 celery-4.1.1 certifi-2018.4.16 cffi-1.11.5 chardet-3.0.4 cryptography-2.3 dj-database-url-0.5.0 django-2.1.11 django-celery-results-1.0.1 django-jinja-2.4.1 django-jinja-bootstrap-form-4.2.3 django-redis-4.9.0 gitdb2-2.0.3 gitpython-2.1.10 humanize-0.5.1 idna-2.6 jinja2-2.10.1 kombu-4.2.1 markupsafe-1.0 paramiko-2.4.2 psycopg2-binary-2.7.5 pyasn1-0.4.3 pycparser-2.18 pynacl-1.2.1 pytz-2018.4 redis-2.10.6 requests-2.20.1 selenium-3.141.0 six-1.11.0 smmap2-2.0.3 timeout-decorator-0.4.1 urllib3-1.24.3 vine-1.1.4
remote: Removing intermediate container 189cc3c8f3e1
remote: ---> 81d83b93e043
remote: Step 5/8 : COPY . /app
remote: ---> abba5b77e06a
remote: Step 6/8 : LABEL dokku=
remote: ---> Running in 1bc9588a1972
remote: Removing intermediate container 1bc9588a1972
remote: ---> 993396036d4f
remote: Step 7/8 : LABEL org.label-schema.schema-version=1.0
remote: ---> Running in a84a5c996a3a
remote: Removing intermediate container a84a5c996a3a
remote: ---> 143a7eeee265
remote: Step 8/8 : LABEL org.label-schema.vendor=dokku
remote: ---> Running in 065ad3c015ae
remote: Removing intermediate container 065ad3c015ae
remote: ---> 475ced025821
remote: Successfully built 475ced025821
remote: Successfully tagged dokku/wharf:latest
remote: -----> Releasing wharf (dokku/wharf:latest)...
remote: -----> Deploying wharf (dokku/wharf:latest)...
remote: -----> App Procfile file found (/home/dokku/wharf/DOKKU_PROCFILE)
remote: DOKKU_SCALE declares scale -> web=1 celery=1
remote: docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: "./dokku-boot.sh": permission denied": unknown.
To 23.239.16.4:wharf
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:wharf'

Google oauth2 Login

@palfrey

I have the app (wharf) set up on on a vps running dokku.

i am getting the following error from google

Authorization Error
Error 400: redirect_uri_mismatch

You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy.

If you're the app developer, register the redirect URI in the Google Cloud Console.
Learn more
Request Details
The content in this section has been provided by the app developer. This content has not been reviewed or verified by Google.
If you’re the app developer, make sure that these request details comply with Google policies.
redirect_uri: http://wharf.wonegraph.com/complete/google-oauth2/

I put https in the redirect_uri on google.

Any Ideas?

Look into using dokku-daemon

That tool allows you to expose the dokku binary via a socket that is mounted into your container, removing the need for ssh.

django-celery issue?

First, thank you for the work!
After setup, everything went ok!
But the app did not start, seems to cause 500 error

wharf-1

wharf-2

Server Error (500) when trying to open apps in wharf dashboard

When trying to open an app from the list in wharf home dashboard, I get a Server Error (500).
I followed installation instructions, but I couldn't get it to work
Wharf is installed as a Dokku app in the same server.

dokku logs wharf :

2022-01-23T21:03:03.170950607Z app[web.1]: Operations to perform:
2022-01-23T21:03:03.170955466Z app[web.1]:   Apply all migrations: admin, apps, auth, contenttypes, django_celery_results, sessions
2022-01-23T21:03:03.170957891Z app[web.1]: Running migrations:
2022-01-23T21:03:03.170960155Z app[web.1]:   No migrations to apply.
2022-01-23T21:03:03.332132529Z app[web.1]: + python manage.py runserver 0.0.0.0:5000
2022-01-23T21:03:04.224941156Z app[web.1]: Watching for file changes with StatReloader
2022-01-23T21:03:04.539642516Z app[web.1]: System check identified some issues:
2022-01-23T21:03:04.539662875Z app[web.1]: 
2022-01-23T21:03:04.539665861Z app[web.1]: WARNINGS:
2022-01-23T21:03:04.539668245Z app[web.1]: ?: (admin.W411) 'django.template.context_processors.request' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar.
2022-01-23T21:03:04.539670780Z app[web.1]: apps.TaskLog.success: (fields.W903) NullBooleanField is deprecated. Support for it (except in historical migrations) will be removed in Django 4.0.
2022-01-23T21:03:04.539673235Z app[web.1]:      HINT: Use BooleanField(null=True) instead.
2022-01-23T21:03:04.539675960Z app[web.1]: 
2022-01-23T21:03:04.539678084Z app[web.1]: System check identified 2 issues (0 silenced).
2022-01-23T21:11:18.698853567Z app[web.1]: "GET / HTTP/1.1" 200 3564
2022-01-23T21:11:24.649689034Z app[web.1]: /usr/local/lib/python3.8/site-packages/django/db/models/fields/__init__.py:1367: RuntimeWarning: DateTimeField TaskLog.when received a naive datetime (2022-01-23 21:11:24.637743) while time zone support is active.
2022-01-23T21:11:24.649711498Z app[web.1]:   warnings.warn("DateTimeField %s received a naive datetime (%s)"
2022-01-23T21:11:24.649716036Z app[web.1]: "POST / HTTP/1.1" 302 0
2022-01-23T21:11:24.725167779Z app[web.1]: "GET /apps/test/wait/5c13c6c4-2ee0-4a6c-b381-1afed86d5f93/check_app HTTP/1.1" 200 1560
2022-01-23T21:11:26.817940178Z app[web.1]: "GET /apps/test/wait/5c13c6c4-2ee0-4a6c-b381-1afed86d5f93/check_app HTTP/1.1" 302 0
2022-01-23T21:11:26.860993232Z app[web.1]: Internal Server Error: /apps/test/check_app/5c13c6c4-2ee0-4a6c-b381-1afed86d5f93
2022-01-23T21:11:26.861059258Z app[web.1]: Traceback (most recent call last):
2022-01-23T21:11:26.861065510Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
2022-01-23T21:11:26.861070840Z app[web.1]:     response = get_response(request)
2022-01-23T21:11:26.861075409Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
2022-01-23T21:11:26.861109855Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2022-01-23T21:11:26.861134542Z app[web.1]:   File "/app/apps/views.py", line 380, in check_app
2022-01-23T21:11:26.861139181Z app[web.1]:     raise Exception(data)
2022-01-23T21:11:26.861143228Z app[web.1]: Exception: -----> Creating test...
2022-01-23T21:11:26.861147867Z app[web.1]: 
2022-01-23T21:11:26.861460696Z app[web.1]: "GET /apps/test/check_app/5c13c6c4-2ee0-4a6c-b381-1afed86d5f93 HTTP/1.1" 500 145
2022-01-23T21:11:30.891007353Z app[web.1]: "GET / HTTP/1.1" 200 3564
2022-01-23T21:11:31.867745322Z app[web.1]: "GET / HTTP/1.1" 200 3564
2022-01-23T21:11:32.564761656Z app[web.1]: "GET / HTTP/1.1" 200 3564
2022-01-23T21:11:34.799151001Z app[web.1]: Internal Server Error: /apps/django-ttm
2022-01-23T21:11:34.799190677Z app[web.1]: Traceback (most recent call last):
2022-01-23T21:11:34.799195105Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
2022-01-23T21:11:34.799198241Z app[web.1]:     response = get_response(request)
2022-01-23T21:11:34.799200586Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
2022-01-23T21:11:34.799203100Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2022-01-23T21:11:34.799205745Z app[web.1]:   File "/app/apps/views.py", line 306, in app_info
2022-01-23T21:11:34.799208090Z app[web.1]:     'postgres': postgres_list(app_name),
2022-01-23T21:11:34.799210394Z app[web.1]:   File "/app/apps/views.py", line 221, in postgres_list
2022-01-23T21:11:34.799212739Z app[web.1]:     return db_list(app_name, data)
2022-01-23T21:11:34.799214953Z app[web.1]:   File "/app/apps/views.py", line 216, in db_list
2022-01-23T21:11:34.799217227Z app[web.1]:     return generic_list(app_name, data, "NAME", ["NAME", "VERSION", "STATUS", "EXPOSED PORTS", "LINKS"])
2022-01-23T21:11:34.799220144Z app[web.1]:   File "/app/apps/views.py", line 192, in generic_list
2022-01-23T21:11:34.799222558Z app[web.1]:     raise Exception("Can't find '%s' in '%s'" % (f, lines[0].strip()))
2022-01-23T21:11:34.799224953Z app[web.1]: Exception: Can't find 'NAME' in '=====> Postgres services'
2022-01-23T21:11:34.799750577Z app[web.1]: "GET /apps/django-ttm HTTP/1.1" 500 145
2022-01-23T21:12:22.103659241Z app[web.1]: Internal Server Error: /apps/django-ttm
2022-01-23T21:12:22.103698416Z app[web.1]: Traceback (most recent call last):
2022-01-23T21:12:22.103701873Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
2022-01-23T21:12:22.103704778Z app[web.1]:     response = get_response(request)
2022-01-23T21:12:22.103707383Z app[web.1]:   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
2022-01-23T21:12:22.103710278Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2022-01-23T21:12:22.103712943Z app[web.1]:   File "/app/apps/views.py", line 306, in app_info
2022-01-23T21:12:22.103728995Z app[web.1]:     'postgres': postgres_list(app_name),
2022-01-23T21:12:22.103731379Z app[web.1]:   File "/app/apps/views.py", line 221, in postgres_list
2022-01-23T21:12:22.103733754Z app[web.1]:     return db_list(app_name, data)
2022-01-23T21:12:22.103735968Z app[web.1]:   File "/app/apps/views.py", line 216, in db_list
2022-01-23T21:12:22.103738282Z app[web.1]:     return generic_list(app_name, data, "NAME", ["NAME", "VERSION", "STATUS", "EXPOSED PORTS", "LINKS"])
2022-01-23T21:12:22.103741218Z app[web.1]:   File "/app/apps/views.py", line 192, in generic_list
2022-01-23T21:12:22.103743632Z app[web.1]:     raise Exception("Can't find '%s' in '%s'" % (f, lines[0].strip()))
2022-01-23T21:12:22.103746057Z app[web.1]: Exception: Can't find 'NAME' in '+ export DOKKU_HOST_ROOT=/home/dokku'

Add rebuild option

Sometimes Dokku gets a bit stuck, and dokku ps:rebuild <app> works wonders, but isn't triggerable from Wharf yet

Login keeps asking me to add SSH Key

Hi and thanks a lot for this app.

For some reason I cant determine, the app keeps asking me to set the SSH key each time I deploy. I thought it could be the key was not being persisted in some way, so I checked the storage mount suggested in the instructions and its blank.

any hints?

User Wharf does not have permissions to run apps:list.

Hey there!
So, I'm trying to use wharf for a while now, I've tried to re-install it a lot of times, but it's not working as expected.
After loggin-in, I receive this error:
Server Error (500)
And my dokku logs says:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/app/apps/views.py", line 115, in index
    apps = app_list()
  File "/app/apps/views.py", line 110, in app_list
    raise Exception(data)
Exception: !     User wharf does not have permissions to run apps:list
 !     Access denied
"GET / HTTP/1.1" 500 145
"GET /favicon.ico HTTP/1.1" 302 0
Not Found: /static/favicon.ico
"GET /static/favicon.ico HTTP/1.1" 404 179

App container failed to start!!

Removing intermediate container 02364079ddba
---> ac1a82c2c0ed
Successfully built ac1a82c2c0ed
Successfully tagged dokku/wharf:latest
-----> Releasing wharf (dokku/wharf:latest)...
-----> Deploying wharf (dokku/wharf:latest)...
-----> Attempting to run scripts.dokku.predeploy from app.json (if defined)
-----> No Procfile found in app image
-----> DOKKU_SCALE file found (/home/dokku/wharf/DOKKU_SCALE)
=====> web=1
-----> Attempting pre-flight checks
For more efficient zero downtime deployments, create a file CHECKS.
See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples
CHECKS file not found in container: Running simple container check...
-----> Waiting for 10 seconds ...
remote: App container failed to start!!
=====> wharf web container output:
=====> end wharf web container output

Server Error 500 after successfull deployment

Hi, after successfull deployment of wharf, the app asked me for login and password, which I provided, but then I am welcomed by Server Error (500)

In nginx logs there's nothing (empy error log).

running dokku logs wharf shows me some error:

2020-01-21T09:26:26.379263914Z app[web.1]: Internal Server Error: /
2020-01-21T09:26:26.379299738Z app[web.1]: Traceback (most recent call last):
2020-01-21T09:26:26.379307518Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
2020-01-21T09:26:26.379326778Z app[web.1]:     response = get_response(request)
2020-01-21T09:26:26.379333749Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
2020-01-21T09:26:26.379340768Z app[web.1]:     response = self.process_exception_by_middleware(e, request)
2020-01-21T09:26:26.379347388Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
2020-01-21T09:26:26.379354195Z app[web.1]:     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2020-01-21T09:26:26.379360860Z app[web.1]:   File "/app/apps/views.py", line 115, in index
2020-01-21T09:26:26.379367685Z app[web.1]:     apps = app_list()
2020-01-21T09:26:26.379374193Z app[web.1]:   File "/app/apps/views.py", line 107, in app_list
2020-01-21T09:26:26.379381048Z app[web.1]:     data = run_cmd_with_cache("apps:list")
2020-01-21T09:26:26.379387830Z app[web.1]:   File "/app/apps/views.py", line 39, in run_cmd_with_cache
2020-01-21T09:26:26.379394703Z app[web.1]:     res = run_cmd(cmd)
2020-01-21T09:26:26.379401195Z app[web.1]:   File "/app/apps/views.py", line 29, in run_cmd
2020-01-21T09:26:26.379407755Z app[web.1]:     return res.get().strip()
2020-01-21T09:26:26.379414233Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/celery/result.py", line 191, in get
2020-01-21T09:26:26.379420938Z app[web.1]:     on_message=on_message,
2020-01-21T09:26:26.379427383Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/celery/backends/base.py", line 462, in wait_for_pending
2020-01-21T09:26:26.379434142Z app[web.1]:     return result.maybe_throw(propagate=propagate, callback=callback)
2020-01-21T09:26:26.379440755Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/celery/result.py", line 296, in maybe_throw
2020-01-21T09:26:26.379447525Z app[web.1]:     self.throw(value, self._to_remote_traceback(tb))
2020-01-21T09:26:26.379454095Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/celery/result.py", line 289, in throw
2020-01-21T09:26:26.379460800Z app[web.1]:     self.on_ready.throw(*args, **kwargs)
2020-01-21T09:26:26.379467351Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/vine/promises.py", line 217, in throw
2020-01-21T09:26:26.379474043Z app[web.1]:     reraise(type(exc), exc, tb)
2020-01-21T09:26:26.379500098Z app[web.1]:   File "/usr/local/lib/python3.6/site-packages/vine/five.py", line 179, in reraise
2020-01-21T09:26:26.379508505Z app[web.1]:     raise value
2020-01-21T09:26:26.379515619Z app[web.1]: paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 172.17.0.1
2020-01-21T09:26:26.381507248Z app[web.1]: "GET / HTTP/1.1" 500 145

Dokku 0.20 has different output formats

Dokku 0.20 rewrote a lot of it's core into Go, and in doing so redid a lot of the formatting. We'll need a significant amount of work to fix support for that.

Add screenshots

I'd be interested to see what this looks like, maybe with screenshots added to the blog post or README.

Documentation incorrect

Probably should say postgres instead of redis:

"Add Postgres (dokku redis:create wharf && dokku redis:link wharf wharf)"

Letsencrypt cache doesn't update

When the letsencrypt dokku support makes changes, it doesn't result in the Letsencrypt cached data getting expired, so we still have old versions of it.

[Development] cannot access Dokku from Django

I'm trying to get a development environment going to work on Wharf, however Django doesn't seem to be able to access that VM, and more specifically, the SSH port (running at 2222). I can ssh from the host fine (it rightfully rejects my login), but from inside the container, trying to ssh into it returns Connection refused.

Deploy button fails with `apps_tasklog_pkey` constraint violation

Rebuilding works just fine, but a deploy does not work. Could this be cause by a private Github repo used as GITHUB_URL? What is the proper way to add authentication?

Task id: 7beba0fa-4c11-4847-b06b-5ab2e39f1d01
Task state: FAILURE

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
psycopg2.IntegrityError: duplicate key value violates unique constraint "apps_tasklog_pkey"
DETAIL:  Key (task_id)=(7beba0fa-4c11-4847-b06b-5ab2e39f1d01) already exists.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 375, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 632, in __protected_call__
    return self.run(*args, **kwargs)
  File "/app/wharf/tasks.py", line 120, in deploy
    description="Deploying %s" % app_name
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 718, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 748, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 831, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 869, in _do_insert
    using=using, raw=raw)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 1136, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1289, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "apps_tasklog_pkey"
DETAIL:  Key (task_id)=(7beba0fa-4c11-4847-b06b-5ab2e39f1d01) already exists.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.