Installation¶
There are various ways to install and deploy dpaste. See the guides below:
dpaste with Docker¶
dpaste Docker images are available to pull from the Docker Hub.
Quickstart to run a dpaste container image:
$ docker run --rm -p 8000:8000 barttc/dpaste:latest
The dpaste image serves the project using uWSGi and is ready for production-like
environments. However it’s encouraged to use an external database to store the
data. See the example below for all available options, specifically
DATABASE_URL
:
$ docker run --rm --name db1 --detach postgres:latest
$ docker run --rm -p 12345:12345 \
--link db1 \
-e DATABASE_URL=postgres://postgres@db1:5432/postgres \
-e DEBUG=True \
-e SECRET_KEY=very-secret-key \
-e PORT=12345 \
barttc/dpaste:latest
Integration into an existing Django project¶
Install the latest dpaste release in your environment. This will install all necessary dependencies of dpaste as well:
$ pip install dpaste
Add dpaste.apps.dpasteAppConfig
to your INSTALLED_APPS
list:
INSTALLED_APPS = (
'django.contrib.sessions',
# ...
'dpaste.apps.dpasteAppConfig',
)
Add dpaste
and the (optiona) dpaste_api
url patterns:
urlpatterns = patterns('',
# ...
url(r'my-pastebin/', include('dpaste.urls.dpaste')),
url(r'my-pastebin/api/', include('dpaste.urls.dpaste_api')),
)
Finally, migrate the database schema:
$ manage.py migrate dpaste
dpaste with docker-compose for local development¶
The project’s preferred way for local development is docker-compose:
$ docker-compose up
This will open the Django runserver on http://127.0.0.1:8000. Changes to the code are automatically reflected in the Docker container and the runserver will reload automatically.
Upon first run you will need to migrate the database. Do that in a separate terminal window:
$ docker-compose run --rm app ./manage.py migrate
dpaste with virtualenv for local development¶
If you prefer the classic local installation using Virtualenv then you can do so. There’s no magic involved.
Example:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -e .[dev]
$ ./manage.py migrate
$ ./manage.py runserver
CSS and Javascript development¶
Static files are stored in the client/
directory and must get compiled
and compressed before being used on the website.
$ npm install
There are some helper scripts you can invoke with make
- make js
Compile only JS files.
- make css
Compile only CSS files.
- make css-watch
Same as
build-css
but it automatically watches for changes in the CSS files and re-compiles it.
After compilation the CSS and JS files are stored in dpaste/static/
where they are picked up by Django (and Django’s collectstatic command).
Note
These files are not commited to the project repository, however they are part of the pypi wheel package, since users couldn’t compile those once they are within Python’s site-packages.