Last updated: 2019 November 27
First, enable GitHub pages for your repository under the settings. If you’re using Jekyll and want Github to compile the site, set the source to “master branch”. If you’re compiling it yourself and pushing it to the gh-pages branch, choose that.
Then under “Custom domain,” set your subdomain, such as
docs.juliaebert.com. (Look familiar?) This will create a commit to your repository with a CNAME file that will let GitHub handle properly directing requests to your github.io domain.
Now go to your domain provider’s site to add a custom DNS record. Choose the type as CNAME and set the name to your subdomain (e.g.,
docs). Then under the Domain name/data, set your GitHub Pages base url with a period at the end, such as
jtebert.github.io.. Note that this does not include your project’s repository name at the end.
It can take awhile (up to hours) for this to propagate. You can check whether it’s working with:
dig docs.juliaebert.com +nostats +nocomments +nocmd
It should give an output like this:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> docs.juliaebert.com +nostats +nocomments +nocmd ;; global options: +cmd ;docs.juliaebert.com. IN A docs.juliaebert.com. 3519 IN CNAME jtebert.github.io. jtebert.github.io. 1816 IN A 18.104.22.168 jtebert.github.io. 1816 IN A 22.214.171.124 jtebert.github.io. 1816 IN A 126.96.36.199 jtebert.github.io. 1816 IN A 188.8.131.52
If you don’t have any lines not starting with
;, it means it’s not working (or not working yet).
A final note if you’re using Jekyll: when you’re set up with the subdomain instead of
USERNAME.github.io/PROJECT-NAME, you will set the
base_url in your
_config.yml to nothing instead of
If you want to test stuff locally with the contents of your development database, the easy way (assuming your database is small and you’re a hobbyist like me) is to copy it to your local machine.
- Install the Heroku command line interface and log in
- In the directory where your Heroku project is, generate a copy of the current database:
- Download that copy with:
- Restore the database to your local system:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U PSQL_USERNAME -d DB_NAME BACKUP_DUMP
PSQL_USERNAMEis the username that will own the database (this might be your system username)
DB_NAMEis the name of the database (this should match what’s in your settings)
BACKUP_DUMPis the name of the file you downloaded in the previous step (something like
- If the previous step asks for a password and you haven’t set one for your postgres user yet:
sudo -u postgres psql
Then set the password:
ALTER USER PSQL_USERNAME PASSWORD 'newPassword';
Don’t forget the trailing semicolon! Then exit with
- If it complains that the database doesn’t exist, the easiest solution is to run
python3 manage.py migrate
and try again.