[GUIDE] How to start Steem-in-a-box on reboot using Systemd
A question that is always asked is: How can I make steem-in-a-box start on boot?
After a short discussion with @yuriks2000, I decided to investigate hooking up SIAB with systemd, for automatic start-up on boot.
Semi-related note: For Steemfeed-JS I just use a cron, which helps to resolve the "Invalid signature" problem after running for a while.
0 */2 * * * docker restart steemfeed
Requirements
- Ubuntu 16.04, or other distro which uses systemd
- Basic Linux knowledge
Problems
Starting up STEEM this way, will always replay on boot. This might not be what you want, as it means reboots will always be painful if they're intentional.
If you are intentionally rebooting, you may want to disable the systemd service, copy /dev/shm to disk, then reboot. This way you will not need to replay, as you can restore the shared_memory.xxx
files into /dev/shm
Set up /dev/shm size to persist
We can edit /etc/fstab
to persist the size, instead of constantly using ./run.sh shm_size
every time we reboot.
sudo nano /etc/fstab
Make a new line at the bottom, and put:
tmpfs /dev/shm tmpfs nodev,nosuid,size=14G 0 0
This means, /dev/shm will become 14 gigabytes on boot. If you don't have this much RAM, you should make it smaller. At the current point of time, a low memory mode witness uses at least 7GB, so you'll need at least a 10G /dev/shm
for breathing room.
Add systemd script
You'll need to create a systemd script.
To do this, we'll create a service called steem.service
.
nano /etc/systemd/system/steem.service
Paste in the following (adjust the username and file locations as required. make sure .env exists, or you'll have issues)
[Unit]
Description=SteemInABox
After=network.target
[Service]
Type=oneshot
User=ubuntu
ExecStart=/home/ubuntu/steem-docker/run.sh replay
ExecStop=/home/ubuntu/steem-docker/run.sh stop
EnvironmentFile=/home/ubuntu/steem-docker/.env
WorkingDirectory=/home/ubuntu/steem-docker
[Install]
WantedBy=default.target
Now save and exit.
Finally, we can enable the service.
systemctl enable steem
This will set up the service to start on boot.
You can reboot to see if it worked.
You should now have your witness/seed/etc. starting on boot, with replay, and your /dev/shm automatically sized on boot :)
Do you like what I'm doing for STEEM/Steemit?
Vote for me to be a witness - every vote counts.
Don't forget to follow me for more like this.
Have you ever thought about being a witness yourself? Contact me on STEEMIT.CHAT, or just ask in the witness channel. I'm happy to guide you! Join in shaping the STEEM economy.
Are you looking for a new server provider? My company @privex offers highly-reliable and affordable dedicated and virtual servers for STEEM, LTC, and BTC! Contact me on STEEMIT.CHAT for more information.
@someguy123 is very helpful! I found his guide on how to setup witness the most useful out of four I tried.
Well I hope this can help some new and aspiring witnesses run their servers more smoothly and easily.
Thanks for all your great work on Steemit @someguy123
good one.keep it up
Thank you for creating great thing. Can you tell me the hardware requirements to be a witness? For example, I wanna be a witness of peerplays.
PeerPlays only uses about 1GB of RAM, so I normally recommend a 4GB RAM VPS for some breathing room. (that's just $30/mo from Privex).
For STEEM, it uses around 9GB of RAM total (assuming you hold shared-memory in RAM), so I usually recommend 16GB
This is very helpful ..thanks for sharing
Mr @someguy123 i liked you in somehow i don t know why .....so i will fill comfortable to vote for you to be a witness ....just don t forget those who helped u to get the the top of the list because they have chosen you and trusted you to represent them in the system ...good luck ;)
@someguy123
FYI - Just posted this article.
Analysis of Steem's Economy - A Social Scientist's First Impressions - Part 3/4 in the series.
https://steemit.com/steemit/@cyberspace/analysis-of-steem-s-economy-a-social-scientist-s-first-impressions-part-3-4