A toolkit for Project Electron Postgres-backed Django microservices.
.travis.yml- Travis CI configuration (useful when you push code to GitHub)Dockerfile- Docker container configurationdocker-compose.yml- Docker Compose configurationentrypoint.sh- A script which runs after the container starts up. If you want to add default objects or users, this is a good place to do it.requirements.in- Minimal Python package requirements.wait-for-it.sh- Tests if a TCP host and port are available, useful if you need to wait for a service to start up completely.
Using this repo requires having Docker installed.
Clone the repository to a new directory:
$ git clone git@github.com:RockefellerArchiveCenter/nebula.git new_project
Move to the root directory of the repository:
cd new_project/
Update the requirements file. First, pin the specific versions of the packages you want to use in requirements.in and then, with pip-tools installed, run pip-compile. This command will generate a requirements.txt file with all the dependencies necessary for your project.
Create a new Django project by running django-admin.py in the Docker container, replacing "new_project" with the name of the new service you are building:
docker-compose run web django-admin.py startproject new_project .
Uncomment the entrypoint key in docker-compose.yml, and still in the root directory, run docker-compose:
$ docker-compose up
Once the application starts successfully, you should be able to access it in your browser at http://localhost:8000
When you're done, shut down docker-compose:
$ docker-compose down
- Rename services in the docker-compose file so they have slightly less generic names.
- Create a file called
config.pyin the main project directory to store local variables, and add it to.gitignore. You should add private settings to this file; see other Project Electron Django apps for examples. - Create a file called
config.py.examplewhich mirrors the structure ofconfig.py. This helps to document which configs are required, and can also be used for automated unit testing. - Point your database at the Postgres database running as a separate service.
- With pre-commit installed, run
pre-commit installto add git pre-commit hooks to your CI pipeline. - Update the default values for the ports exposed in
docker-compose.ymlfor local development. - Update the value of the
DJANGO_PORTvariable in.travis.ymlfor the deployed application. - Update the
CONTAINER,APPLICATION_NAMEvariables in.travis.ymland uncomment out the commented job steps. - Add Travis CI environment variables for
DOCKER_USERNAMEandDOCKER_PASSWORDin the UI at https://travis-ci.com. - Before pushing code, remember to change your remotes!
Code is released under an MIT License, as all your code should be. See LICENSE for details.