debian_server.html (5391B)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | <!doctype html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Debian Server</title> <script src="header.js"></script> </head> <body> <a style="text-decoration: none" href="content.html"><--</a> <h2>Debian Server</h2> <p><i>2024-07-25</i></p> <hr /> <p> Without the physical space or electricity funding to have a home lab setup, I opted for a VPS instead. Despite some perhaps questionable reviews and information online, <a href="https://racknerd.com" target="_blank">RackNerd</a> has provided well for my needs. I pay about 25 USD per year for a KVM VPS with 4 GB RAM and 4 virtual CPU cores. While this is a suspiciously low price (what one may pay <i>per month</i> with another provider), they have quite good Black Friday sales. I initially chose them, as one of the requirements for a VPS was the necessary SMTP ports open for a email server. Most providers (AWS, DigitalOcean, etc.) keep these ports strictly closed, as to not be placed on an IP blacklists for spam origination. I will note that my VPS's IP is on a number of blacklists and it has been a work in progress to be able to send email to certain receivers. </p> <pre><code> _,met$$$$$gg. jack@pngu.org ,g$$$$$$$$$$$$$$$P. ------------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64 ,$$P' `$$$. Host: KVM RHEL 7.6.0 PC (i440FX + PIIX, 1996) ',$$P ,ggs. `$$b: Kernel: 6.1.0-21-amd64 `d$$' ,$P"' . $$$ Uptime: 486 days, 22 hours, 21 mins $$P d$' , $$P Packages: 715 (dpkg) $$: $$. - ,d$$' Shell: zsh 5.9 $$; Y$b._ _,d$P' Resolution: 1024x768 Y$$. `.`"Y$$$$P"' Terminal: /dev/pts/0 `$$b "-.__ CPU: Intel Xeon E5-2680 v2 (4) @ 2.799GHz `Y$$ GPU: Cirrus Logic QEMU Virtual Machine `Y$$. Memory: 1183MiB / 4679MiB `$$b. `Y$$b. `"Y$b._ `"""</code></pre> <p> There is not much to discuss in terms of intricate system configuration or hardware quirks. (Almost) all services run in Docker containers, configured via Docker Compose. One external network links each container to the Caddy web server container, allowing each container to be configured and run independently: </p> <pre><code>services: foo: networks: - caddybridge networks: caddybridge: external: true</code></pre> <p> If a container requires additional images within, like a database, an internal network is used: </p> <pre><code>services: foo: networks: - caddybridge - foo_dbnet db: image: mariadb container_name: foo_db restart: unless-stopped environment: MYSQL_RANDOM_ROOT_PASSWORD: yes MARIADB_DATABASE: foo MARIADB_USER: foo_user MARIADB_PASSWORD: ${MARIADB_PASSWORD} volumes: - ./db:/var/lib/mysql networks: - foo_dbnet depends_on: - foo networks: caddybridge: external: true foo_dbnet: internal: true</code></pre> <p> I use MariaDB for any database needs, where possible, for consistency and as it is quite lightweight. </p> <h3><a href="https://agendav.readthedocs.io" target="_blank">Agendav</a> (Calendar client)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/agendav" target="_blank">Configuration</a></li> </ul> <p>Works well and does not require and fancy configuration. No notes.</p> <h3><a href="https://sabre.io/baikal" target="_blank">Baïkal</a> (CalDav server)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/baikal" target="_blank">Configuration</a></li> </ul> <h3><a href="https://caddyserver.com" target="_blank">Caddy</a> (Web server)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/caddy" target="_blank">Configuration</a></li> </ul> <h3><a href="https://git.zx2c4.com/cgit" target="_blank">Cgit</a> (Git client)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/cgit" target="_blank">Configuration</a></li> </ul> <h3><a href="https://gitolite.com" target="_blank">Gitolite</a> (Git server)</h3> <h3><a href="https://uptimekuma.org" target="_blank">Kuma</a> (System monitor)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/kuma" target="_blank">Configuration</a></li> </ul> <h3><a href="https://roundcube.net" target="_blank">Roundcube</a> (Webmail client)</h3> <ul> <li> <a href="https://git.pngu.org/server/tree/roundcube" target="_blank">Configuration</a> </li> </ul> <h3><a href="https://stalw.art" target="_blank">Stalwart</a> (Mail server)</h3> <ul> <li><a href="https://git.pngu.org/server/tree/stalwart" target="_blank">Configuration</a></li> </ul> <h3> <a href="https://www.vaultwarden.net" target="_blank">Vaultwarden</a> (Password manager) </h3> <ul> <li> <a href="https://git.pngu.org/server/tree/vaultwarden" target="_blank">Configuration</a> </li> </ul> <script src="frame.js"></script> </body> </html> |