((META (EMPTY-STRING title "Installation of Zettelstore on a server") (WORD role "manual") (TAG-SET tags ("#installation" "#manual" "#zettelstore")) (WORD syntax "zmk") (ZID-SET back ("00001003000000" "00001003315000")) (ZID-SET backward ("00001003000000" "00001003315000")) (NUMBER box-number "1") (STRING copyright "(c) 2020-present by Detlef Stern ") (TIMESTAMP created "00010101000000") (WORD lang "en") (EMPTY-STRING license "EUPL-1.2-or-later") (TIMESTAMP modified "20211125185833") (TIMESTAMP published "20211125185833") (WORD visibility "public")) (BLOCK (PARA (TEXT "You") (SPACE) (TEXT "want") (SPACE) (TEXT "to") (SPACE) (TEXT "provide") (SPACE) (TEXT "a") (SPACE) (TEXT "shared") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "that") (SPACE) (TEXT "can") (SPACE) (TEXT "be") (SPACE) (TEXT "used") (SPACE) (TEXT "from") (SPACE) (TEXT "your") (SPACE) (TEXT "various") (SPACE) (TEXT "devices.") (SOFT) (TEXT "Installing") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "as") (SPACE) (TEXT "a") (SPACE) (TEXT "Linux") (SPACE) (TEXT "service") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "that") (SPACE) (TEXT "hard.")) (PARA (TEXT "Grab") (SPACE) (TEXT "the") (SPACE) (TEXT "appropriate") (SPACE) (TEXT "executable") (SPACE) (TEXT "and") (SPACE) (TEXT "copy") (SPACE) (TEXT "it") (SPACE) (TEXT "into") (SPACE) (TEXT "the") (SPACE) (TEXT "appropriate") (SPACE) (TEXT "directory:")) (VERBATIM-CODE (("" . "sh")) "# sudo mv zettelstore /usr/local/bin/zettelstore") (PARA (TEXT "Create") (SPACE) (TEXT "a") (SPACE) (TEXT "group") (SPACE) (TEXT "named") (SPACE) (LITERAL-INPUT () "zettelstore") (TEXT ":")) (VERBATIM-CODE (("" . "sh")) "# sudo groupadd --system zettelstore") (PARA (TEXT "Create") (SPACE) (TEXT "a") (SPACE) (TEXT "system") (SPACE) (TEXT "user") (SPACE) (TEXT "of") (SPACE) (TEXT "that") (SPACE) (TEXT "group,") (SPACE) (TEXT "named") (SPACE) (LITERAL-INPUT () "zettelstore") (TEXT ",") (SPACE) (TEXT "with") (SPACE) (TEXT "a") (SPACE) (TEXT "home") (SPACE) (TEXT "folder:")) (VERBATIM-CODE (("" . "sh")) "# sudo useradd --system --gid zettelstore \\\n --create-home --home-dir /var/lib/zettelstore \\\n --shell /usr/sbin/nologin \\\n --comment \"Zettelstore server\" \\\n zettelstore") (PARA (TEXT "Create") (SPACE) (TEXT "a") (SPACE) (TEXT "systemd") (SPACE) (TEXT "service") (SPACE) (TEXT "file") (SPACE) (TEXT "and") (SPACE) (TEXT "store") (SPACE) (TEXT "it") (SPACE) (TEXT "into") (SPACE) (LITERAL-INPUT () "/etc/systemd/system/zettelstore.service") (TEXT ":")) (VERBATIM-CODE (("" . "ini")) "[Unit]\nDescription=Zettelstore\nAfter=network.target\n\n[Service]\nType=simple\nUser=zettelstore\nGroup=zettelstore\nExecStart=/usr/local/bin/zettelstore run -d /var/lib/zettelstore\nWorkingDirectory=/var/lib/zettelstore\n\n[Install]\nWantedBy=multi-user.target") (PARA (TEXT "Double-check") (SPACE) (TEXT "everything.") (SPACE) (TEXT "Now") (SPACE) (TEXT "you") (SPACE) (TEXT "can") (SPACE) (TEXT "enable") (SPACE) (TEXT "and") (SPACE) (TEXT "start") (SPACE) (TEXT "the") (SPACE) (TEXT "zettelstore") (SPACE) (TEXT "as") (SPACE) (TEXT "a") (SPACE) (TEXT "service:")) (VERBATIM-CODE (("" . "sh")) "# sudo systemctl daemon-reload\n# sudo systemctl enable zettelstore\n# sudo systemctl start zettelstore") (PARA (TEXT "Use") (SPACE) (TEXT "the") (SPACE) (TEXT "commands") (SPACE) (LITERAL-CODE (("" . "sh")) "systemctl") (SPACE) (TEXT "and") (SPACE) (LITERAL-CODE (("" . "sh")) "journalctl") (SPACE) (TEXT "to") (SPACE) (TEXT "manage") (SPACE) (TEXT "the") (SPACE) (TEXT "service,") (SPACE) (TEXT "e.g.:")) (VERBATIM-CODE (("" . "sh")) "# sudo systemctl status zettelstore # verify that it is running\n# sudo journalctl -u zettelstore # obtain the output of the running zettelstore")))