Skip to main content

A plugin for django-simple-deploy, supporting deployments to Railway.

Project description

dsd-railway

A plugin for deploying Django projects to Railway, using django-simple-deploy.

For full documentation, see the documentation for django-simple-deploy.

Current status

This plugin is in a pre-1.0 development phase. It has limited functionality at the moment, but should evolve quickly.

Configuration-only deployment

The following instructions set up a Postgres database. If you want to use SQLite instead, see these instructions.

First, install the Railway CLI. Choose a name for your deployed project, and use it everywhere you see <project-name>. Run the following commands to configure your project for deployment:

$ railway login # May need to use `railway login --browserless`
$ pip install dsd-railway
# Add `django_simple_deploy` to `INSTALLED_APPS`
$ python manage.py deploy --deployed-project-name <project-name>
$ git status
# Review changes
$ git add .
$ git commit -m "Configured for deployment to Railway."
  • Now run the following to actually deploy your project to Railway. (You may see a bunch of errors, or a crashed deployment, after running railway up. Those errors will go away after creating the database. This is Railway's recommended approach!)
$ railway init --name <project-name>
$ railway up
$ railway add --database postgres
$ railway variables \
    --set 'PGDATABASE=${{Postgres.PGDATABASE}}' \
    --set 'PGUSER=${{Postgres.PGUSER}}' \
    --set 'PGPASSWORD=${{Postgres.PGPASSWORD}}' \
    --set 'PGHOST=${{Postgres.PGHOST}}' \
    --set 'PGPORT=${{Postgres.PGPORT}}' \
    --service <project-name>
$ railway domain --port 8080 --service <project-name>

After this last command, you should see the URL for your project. You may need to wait a few minutes for the deployment to finish.

If your deployment doesn't seem to work, you can try redeploying it:

$ railway redeploy --service <project-name>

Fully automated deployment

First, install the Railway CLI. Then run the following commands:

$ railway login # You may need to use `railway login --browserless`
$ pip install dsd-railway
# Add django_simple_deploy to INSTALLED_APPS.
$ python manage.py deploy --automate-all

Your deployed project should appear in a new browser tab.

Using SQLite

By default, a Postgres database will be used. If you prefer to use SQLite, include the --db sqlite argument when calling deploy:

$ python manage.py deploy --automate-all --db sqlite

This will create a persistent Railway volume where the SQLite database file will be written.

Destroying a project

This is mostly for developers, but if you're trying this out and want to destroy a project the following should work:

$ export RAILWAY_API_TOKEN=<account-token>
$ python developer_resources/destroy_project.py <project-id>

Be careful running this command, as it is an immediately destructive action. If you want to be more cautious, you can delete the project in your Railway dashboard. Railway schedules the project for deletion in the next 48 hours, giving you some possibility of restoring the project if you need to.

If you don't know the ID of your project, you can run railway status --json. The ID will the first item in the JSON output. You can also find the project ID in the Settings tab of the overall project; make sure you're looking at the project's Settings tab, not the service's Settings.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsd_railway-0.2.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsd_railway-0.2.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file dsd_railway-0.2.0.tar.gz.

File metadata

  • Download URL: dsd_railway-0.2.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for dsd_railway-0.2.0.tar.gz
Algorithm Hash digest
SHA256 467cef2795e2e993ee6d4a3836b7f70449410bba9d1c89fc2349e90083444509
MD5 12a41386b6e647e73f5ec26b05b92e62
BLAKE2b-256 2a9208240e6f3f42d88e6741f953829757de6b8950a2758e9733873362f969e9

See more details on using hashes here.

File details

Details for the file dsd_railway-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dsd_railway-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for dsd_railway-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cbde55968ce9c0e86b368817a5bf96f43a6ccc12062daffec6d8906e2c1d7f1
MD5 5213f9eaab39a4a1542e797abe3a629d
BLAKE2b-256 0ca066703859636c33265ee62271461d29dae79ac9739b44139b387f02a7bf77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page