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.2.tar.gz (7.2 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.2-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_railway_storage-1.0.2.tar.gz
  • Upload date:
  • Size: 7.2 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.2.tar.gz
Algorithm Hash digest
SHA256 e9ac7727d80ac3d46fcb4ce107090523fd6b6e1f0aff759aca1cfa9b16965405
MD5 676e8557c884e72f4fddecb1c97b133f
BLAKE2b-256 4bab0f730095bbaf6ddc694cb5dc211f6cb5e422be58446cbef750b795bec782

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_railway_storage-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ee0b635103c10b781c656aa8a5cea7451dadc839e1e8f60cf3053faa0d75ee1
MD5 cd4d3636d992e66f2691f4b90e696f58
BLAKE2b-256 1585473940373bf2286136ef20699194fc06f4f10b33f9f188232ccc63771193

See more details on using hashes here.

Provenance

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