I have an elixir project on a linux server. I have created a .service
script which will start and stop the application with the following commands
systemctl start "my_app".service
systemctl stop "my_app".service
The .service
file looks something like this…
[Unit]
Description="example app_name daemon"
[Service]
Type=simple
User=root
Restart=on-failure
Environment=MIX_ENV=prod "PORT=4000"
WorkingDirectory="the file path to my app"
ExecStart=/usr/local/bin/mix phoenix.server
[Install]
WantedBy=multi-user.target
It works as expected, the one exception being that it will not read the environment variables. I can give the application access to them by adding them to the script manually like I have with PORT=4000
above.
I want to know if there is a way for the .service
file to access the env vars that I have on my server so I do not have to write them in each I use this script on a new server. Thanks in advance
Feel free to check out the repo if you would like more info on the project! 👍
Advertisement
Answer
You are looking for EnvironmentFile=
directive in [Service]
section.
EnvironmentFile=/path/to/some/textFile
Read here for more info.