Railway is absolutely fitted for production, so no need to worry 
At first glance it looks correctly set up, but here's a few things to account for:
Database
I notice you have a database with a volume attached, it looks like you deployed the pre-set MySQL database Railway provides
It's already set up to store data persistently and should be ready for production use unless you changed any configurations you shouldn't have (like volume mount location)
Best Practices
best practice in this case would be to ensure you're connecting to your database over the private network
(referenced in the MYSQL_PRIVATE_URL variable in your MySQL service)
connecting to your database through that ensures you're using the private network which is faster and doesn't subject your services to egress fees
Services
Your services don't have volumes attached, volumes are what's used to store data persistently, if all your services only use your database to store persistent data then you should be good. Although if your services are supposed to store data or files persistently in their file directory then you may need a volume there as well
For example if one of your services allow for image uploads and store them in /images then you may need a volume mounted to /app/images, doing this will ensure any files in the /images directory are stored persistently and will exist across all deployments