Skip to main content

django-railway-storage

A Django package that provides Railway bucket storage backends and a management command to auto-configure your settings.

Installation

pip install django-railway-storage

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'django_railway_storage',
]

Setting up a Railway Bucket

  1. On the Railway canvas, right-click an empty area and select Add Service
  2. Select Bucket from the list
  3. Click Deploy to provision the bucket
  4. Navigate to the Credentials tab of the bucket
  5. Click Add to Service
  6. Select the service (your Django app) you want to connect the bucket to
  7. Under Style, select either:
    • AWS SDK (Generic) — for general S3-compatible access
    • Django (django-storages) — injects variables matching django-storages naming
  8. The injected environment variables will match what this package expects:
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY
    • AWS_STORAGE_BUCKET_NAME
    • AWS_S3_ENDPOINT_URL
    • AWS_S3_REGION_NAME
  9. Click Add Service to save — the variables are now available in your Railway deployment

Usage

Auto-configure settings

Run the management command to append the storage config to your settings file:

# Private storage (presigned URLs, default)
python manage.py configure_railway_storage

# Public storage
python manage.py configure_railway_storage --storage public

# Custom settings file path
python manage.py configure_railway_storage --settings-file config/settings/production.py

# Custom presigned URL expiry (seconds)
python manage.py configure_railway_storage --storage private --expire 7200

Required environment variables

Set these in your Railway project (or .env):

Variable Description
AWS_ACCESS_KEY_ID Railway bucket access key
AWS_SECRET_ACCESS_KEY Railway bucket secret key
AWS_STORAGE_BUCKET_NAME Bucket name
AWS_S3_ENDPOINT_URL Railway S3-compatible endpoint URL
AWS_S3_REGION_NAME Region (default: us-east-1)

Use backends directly

You can also reference the backends manually in your settings:

# Private (presigned URLs)
STORAGES = {
    "default": {
        "BACKEND": "django_railway_storage.backends.PrivateMediaStorage",
    },
    ...
}

# Public
STORAGES = {
    "default": {
        "BACKEND": "django_railway_storage.backends.PublicMediaStorage",
    },
    ...
}

Use on a model field

from django.db import models

class Document(models.Model):
    file = models.FileField(upload_to='documents/')  # uses default storage

Download files

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

Source Distribution

django_railway_storage-1.0.3.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

django_railway_storage-1.0.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file django_railway_storage-1.0.3.tar.gz.

File metadata

  • Download URL: django_railway_storage-1.0.3.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for django_railway_storage-1.0.3.tar.gz
Algorithm Hash digest
SHA256 69778a803b43ed60e6b12026c51d4555fa836e05c5614d6aab49977c65444ff0
MD5 41c5771d52c8b595935e8bacc0f1975b
BLAKE2b-256 69e9c6203345b72631c1b8accaedd034aa3d0411874fbcc5c46126f61d94d7fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_railway_storage-1.0.3.tar.gz:

Publisher: ci.yml on Franklinson/Railway-Storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_railway_storage-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_railway_storage-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 53bad586e2f17f92879c67a5310cb36024e9c002020544c6541c24995e77ebcb
MD5 7666822ea4c17301aaf86002bacf652c
BLAKE2b-256 aab22c910976b06c3678320901db852aad230d8d2510f604ea4d0c1658228091

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_railway_storage-1.0.3-py3-none-any.whl:

Publisher: ci.yml on Franklinson/Railway-Storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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