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

Railway injects these automatically when you connect a bucket to your service. Both naming styles are supported:

Railway Variable Alternative Description
AWS_ACCESS_KEY_ID Railway bucket access key
AWS_SECRET_ACCESS_KEY Railway bucket secret key
AWS_S3_BUCKET_NAME AWS_STORAGE_BUCKET_NAME Bucket name
AWS_ENDPOINT_URL AWS_S3_ENDPOINT_URL Railway S3-compatible endpoint URL
AWS_DEFAULT_REGION 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.5.tar.gz (7.6 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.5-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_railway_storage-1.0.5.tar.gz
  • Upload date:
  • Size: 7.6 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.5.tar.gz
Algorithm Hash digest
SHA256 96a1ac0104f75b65827219ac7ad68824053efbf23219d6e7f3ea86905a0c1b81
MD5 c3256b0a5e1500331d056a44edf26b36
BLAKE2b-256 9a5e64f88b12ff32ae9520ae65d4f290b72957608a664cba13b6b5206236b4d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_railway_storage-1.0.5.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.5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_railway_storage-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 deee8165aa4ca3e3444c83f79b52d26db164c12493cad10adc72336d9eb36a44
MD5 89f7a53529ded2f1acd0ad105532da4e
BLAKE2b-256 a59205eb35092955566ac229d9c1940dfdc94310d4aa95b7d3f2dbd1d5bc8cb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_railway_storage-1.0.5-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