Issue Deploying Django App with Gunicorn on Railway
novixel
HOBBYOP

2 years ago

It's been a few days of trying to get this up for some production tests but I'm having issues getting it to launch on railway. Everything works great locally in the debug environment 'python manage.py runserver'. I'm still relatively new regarding web server deployment but from what I read railway was a good starting point for my use case but I'm still unsure.

I've added all the necessary files for deployment, changed my settings for production, and hidden my variables in the environment (I have them on railway too). Requirements, Runtime, procfile and gunicorn.conf. For some reason, I always seem to encounter an issue with the docker image building or it says no start-up command and I'm not sure what command would be required while I have the procfile.

Any help would be appreciated and if anyone has the time to help me out more in-depth, I'm willing to pay if you can help me solve my issue.

174 Replies

2 years ago

if your Procfile doesn't have a capital P it wont be detected.


novixel
HOBBYOP

2 years ago

1234180008180973800


2 years ago

what are its contents?


novixel
HOBBYOP

2 years ago

release: python manage.py migrate
web: gunicorn dragon.wsgi -c gunicorn.conf.py


2 years ago

i think it would be best to delete the heroku Procfile and use a railway.json file instead -


novixel
HOBBYOP

2 years ago

Ill try that


novixel
HOBBYOP

2 years ago

So it looks like it deployed correctly but it failed to respond


novixel
HOBBYOP

2 years ago

1234181485767037200


novixel
HOBBYOP

2 years ago

could it be my port


novixel
HOBBYOP

2 years ago

with the conf file


2 years ago

yes, send your gunicorn.conf please


novixel
HOBBYOP

2 years ago

bind = "0.0.0.0:8000"
workers = 3
timeout = 120


2 years ago

remove the bind line


novixel
HOBBYOP

2 years ago

okay


novixel
HOBBYOP

2 years ago

Same thing


novixel
HOBBYOP

2 years ago

1234182677985362200


novixel
HOBBYOP

2 years ago

it selected a port tho


novixel
HOBBYOP

2 years ago

Invalid HTTPHOST header: 'dragon-production.up.railway.app'. You may need to add 'dragon-production.up.railway.app' to ALLOWEDHOSTS.


novixel
HOBBYOP

2 years ago

oo


2 years ago

please be more specfic when you say there is an error


novixel
HOBBYOP

2 years ago

this is the first actual error ive gotten so. Progress lol


novixel
HOBBYOP

2 years ago

ima try to add that


novixel
HOBBYOP

2 years ago

I appreciate your time.


novixel
HOBBYOP

2 years ago

I've tried to deploy with he cli as it seems faster but I always run in to this error Failed to stream build logs: TLS error: webpki error: MissingOrMalformedExtensions Failed to stream deploy logs: TLS error: webpki error: MissingOrMalformedExtensions


2 years ago

thats an issue with your os, but the code would have still been uploaded


novixel
HOBBYOP

2 years ago

1234183862796423200


novixel
HOBBYOP

2 years ago

I thought soo I was gonna run a virtual env for it but I figured if I'm launching in railway I don't need to


2 years ago

are you using a custom domain?


novixel
HOBBYOP

2 years ago

no just he railway generated one


novixel
HOBBYOP

2 years ago

1234184350879187000


2 years ago

your code and or gunicorn is sending redirects when it shouldnt


2 years ago

try adding --forwarded-allow-ips "*" to your gunicorn start command


novixel
HOBBYOP

2 years ago

1234184962706505700


novixel
HOBBYOP

2 years ago

would it be any of this


2 years ago

no, please read the message again


novixel
HOBBYOP

2 years ago

okay i will try that


novixel
HOBBYOP

2 years ago

WOOO


novixel
HOBBYOP

2 years ago

okay sooo


novixel
HOBBYOP

2 years ago

--forwarded-allow-ips "* what does it do


novixel
HOBBYOP

2 years ago

is that an usecure thing i should worrie about


2 years ago

did it fix the redirect issue?


novixel
HOBBYOP

2 years ago

Yes


2 years ago


novixel
HOBBYOP

2 years ago

I have another issue too i see


novixel
HOBBYOP

2 years ago

none of djangos static files are found


novixel
HOBBYOP

2 years ago

1234186788289904600


2 years ago

whats your current railway.json in use?


novixel
HOBBYOP

2 years ago

{ "$schema": "https://railway.app/railway.schema.json", "build": { "builder": "NIXPACKS" }, "deploy": { "startCommand": "python manage.py migrate && python manage.py collectstatic --noinput && gunicorn dragon.wsgi --forwarded-allow-ips '*'", "restartPolicyType": "ON_FAILURE", "restartPolicyMaxRetries": 10 } }


2 years ago

send your settings.py file please


novixel
HOBBYOP

2 years ago


novixel
HOBBYOP

2 years ago

Do you prefer bmac or do you want some crypto >?


2 years ago

use these -

STATIC_URL = 'static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")

2 years ago

you dont need to send me anything, but thank you


novixel
HOBBYOP

2 years ago

Well, I think you deserve something. You've been a great help.


novixel
HOBBYOP

2 years ago

what you do want 😄


novixel
HOBBYOP

2 years ago

steam card or somthing


2 years ago

bmac if you insist


novixel
HOBBYOP

2 years ago

Sounds good


novixel
HOBBYOP

2 years ago

Enjoy your trains


2 years ago

thank you very much


novixel
HOBBYOP

2 years ago

I may need a hand in the future so I'm gonna add you 😄


novixel
HOBBYOP

2 years ago

nothing is free in this world and your time is valuable so I will pay for your services.


novixel
HOBBYOP

2 years ago

?: (staticfiles.W004) The directory '/app/static' in the STATICFILES_DIRS setting does not exist.

125 static files copied to '/app/staticfiles'.


2 years ago

i appreciate that but i wouldn’t be here if i wanted the people i help to pay


novixel
HOBBYOP

2 years ago

i feel like I'm missing something


2 years ago

might be easier if you could share your repo?


novixel
HOBBYOP

2 years ago

Whats your git


2 years ago

brody192


novixel
HOBBYOP

2 years ago

ive added you


novixel
HOBBYOP

2 years ago


novixel
HOBBYOP

2 years ago

1234190576027697200


2 years ago

looking


2 years ago

i assume you have the root directory set to /app?


novixel
HOBBYOP

2 years ago

yes


novixel
HOBBYOP

2 years ago

1234191124554453200


2 years ago

where are your static files, i dont see them anywhere in the repo?


novixel
HOBBYOP

2 years ago

I dont have any stored just the django ones that install with pip


novixel
HOBBYOP

2 years ago

would i need to store them in the repo ?


novixel
HOBBYOP

2 years ago

everything else is working


novixel
HOBBYOP

2 years ago

just not the admin


novixel
HOBBYOP

2 years ago

not a big deal but I would like it to look properly


novixel
HOBBYOP

2 years ago

1234191616663883800


2 years ago

do you not have a static folder locally?


novixel
HOBBYOP

2 years ago

no


novixel
HOBBYOP

2 years ago

worked fine without it


2 years ago

send a link to your site please



2 years ago

what do you see when you visit that site?


novixel
HOBBYOP

2 years ago

Eveything is working correctly


2 years ago

yep, looks like it was just cache



novixel
HOBBYOP

2 years ago

looks off


novixel
HOBBYOP

2 years ago

1234192952109170700


2 years ago

what does it look like running locally


novixel
HOBBYOP

2 years ago

One moment not letting me run it local now


novixel
HOBBYOP

2 years ago

1234194236296003600


2 years ago

why are you trying to access it with https?


novixel
HOBBYOP

2 years ago

im not lol


novixel
HOBBYOP

2 years ago

its forcing


2 years ago

what command did you run


novixel
HOBBYOP

2 years ago

python manage.py runserver


novixel
HOBBYOP

2 years ago

was working fine before


2 years ago

django seems to disagree with you on this


novixel
HOBBYOP

2 years ago

1234195204894888200


novixel
HOBBYOP

2 years ago

but it forces https


novixel
HOBBYOP

2 years ago

1234195272666452000


2 years ago

dont open it with https


novixel
HOBBYOP

2 years ago

1234195389280948200


2 years ago

is it redirecting you?


novixel
HOBBYOP

2 years ago

yes


novixel
HOBBYOP

2 years ago

it sends me to https either way i try to access it now


2 years ago

something somewhere is set to do that


novixel
HOBBYOP

2 years ago

okay


novixel
HOBBYOP

2 years ago

i found it


2 years ago

what was it?


novixel
HOBBYOP

2 years ago

If i go with http://localhost:8000 it works


novixel
HOBBYOP

2 years ago


novixel
HOBBYOP

2 years ago

very odd


novixel
HOBBYOP

2 years ago

1234196218058510300


novixel
HOBBYOP

2 years ago

this is what its suppose to look like


2 years ago

what page is that


novixel
HOBBYOP

2 years ago

django admin


2 years ago

what url path



novixel
HOBBYOP

2 years ago


2 years ago

please go to the path you are having issues with on railway


novixel
HOBBYOP

2 years ago

im there


novixel
HOBBYOP

2 years ago

1234196475806880000


novixel
HOBBYOP

2 years ago

seem the css static files are not found


2 years ago

so same thing locally then


novixel
HOBBYOP

2 years ago

locally is showing it correctly


novixel
HOBBYOP

2 years ago

1234196688864940000


2 years ago

please go to the same path you are having issues with on railway


novixel
HOBBYOP

2 years ago

I am


2 years ago

/admin != /admin/login/?next=/admin/


novixel
HOBBYOP

2 years ago

1234196926686036000


2 years ago

i can only go off the information you provide me


novixel
HOBBYOP

2 years ago

Yes i know lol sorry


novixel
HOBBYOP

2 years ago

I have a bigger issue. i can fix the static thing im sure by just grabbing the django files and loading adding them to the repo


novixel
HOBBYOP

2 years ago

My threading loop wont work on the server


2 years ago

you only have 1 vcpu so theres nothing to thread


novixel
HOBBYOP

2 years ago

that makes sence


novixel
HOBBYOP

2 years ago

anyway to fix it ?


novixel
HOBBYOP

2 years ago

1234197483085889800


2 years ago

upgrade to the hobby plan


novixel
HOBBYOP

2 years ago

okay


2 years ago

i mean thats what i assume is the issue


novixel
HOBBYOP

2 years ago

It would make the most sense if i only have one thread to work off of


2 years ago

Python should be smart enough to run it anyway


2 years ago

true


2 years ago

JS's event loop does fake threading, I'd be very surprised if Python can't do the same


2 years ago

its either bad code or trial plan


novixel
HOBBYOP

2 years ago

yeah I wasn't sure if it was the best way to go but this is just proof of concept right now getting everything working


novixel
HOBBYOP

2 years ago

I was going to use celery but that was a can of worms i couldn't figure out without deep dive


novixel
HOBBYOP

2 years ago

2 vCPU per Container


novixel
HOBBYOP

2 years ago

the trial has 2 soo it should work if that was the issue


2 years ago

where does it say that, i thought it was 1


novixel
HOBBYOP

2 years ago

1234198844128886800


novixel
HOBBYOP

2 years ago

im planning on upgrading once i get it working


novixel
HOBBYOP

2 years ago

but I'm not sure how railway handles threading


2 years ago

well then that leaves code issue


2 years ago

nothing to do with railway


novixel
HOBBYOP

2 years ago

Okay. So if it works locally without issues where would i start looking if its on railway


novixel
HOBBYOP

2 years ago

my logs give me nothing


2 years ago

i honestly wouldnt know, but if your logs give you nothing then you are not logging anything, id start by adding verbose logging


novixel
HOBBYOP

2 years ago

that would be good how can i add the verbose logging to my start up with gunicorn


2 years ago

find a logging package you like and start using it


novixel
HOBBYOP

2 years ago

I can just use regular python logging packages? nothing special for railway?


2 years ago

of course, what makes you think youd need to use something special?


novixel
HOBBYOP

2 years ago

Idk still relatively new to web server stuff wasn't sure if there was anything special about it


2 years ago

when it comes down to it, its just printing text, nothing platform specific in any way


novixel
HOBBYOP

2 years ago

I appreciate all your help I'm gonna do some bug testing and some deeper logging.


novixel
HOBBYOP

2 years ago

Thank you


2 years ago

no problem!


Loading...