আমি আমার নিজস্ব একটি ব্লগ ইনস্টল করেছি — মূলত #NixOS সম্পর্কে আরও ভালোভাবে জানার জন্য। আশ্চর্যজনকভাবে, পুরো বিষয়টি বেশ সহজ ছিল।
WriteFreely এর জন্য দারুণ উপযোগী: এটি মিনিমালিস্টিক, দ্রুত সেটআপ করা যায় এবং এতে বাড়তি কোনো ঝামেলা নেই। কাজ শুরু করার এবং পাশাপাশি কিছু শেখার জন্য এটি উপযুক্ত। এর কনফিগারেশন বেশ গোছানো। কয়েকটি অপশন সেট করা, ডিরেক্টরি প্রস্তুত করা, সামনে একটি রিভার্স প্রক্সি রাখা — ব্যাস, কাজ শেষ।
এর জন্য আমার বর্তমান NixOS কনফিগারেশনটি দেখতে এইরকম:
{ config, pkgs, ... }:
{
services.writefreely = {
enable = true;
host = "blog.burningboard.org";
settings = {
server = {
port = 8080;
min_log_level = "debug";
};
app = {
host = "https://blog.burningboard.org";
single_user = true;
landing = "/read";
wf_modesty = true;
federation = true;
public_stats = true;
theme = "write";
};
};
stateDir = "/opt/writefreely";
};
# ActivityPub কী জেনারেশনের জন্য ফিক্স: ফেডারেশনের জন্য openssl প্রয়োজন
systemd.services.writefreely.path = [ pkgs.openssl ];
# সঠিক পারমিশন সহ ডেটা ডিরেক্টরি স্বয়ংক্রিয়ভাবে তৈরি করা
systemd.tmpfiles.rules = [
"d /opt/writefreely 0700 writefreely writefreely -"
];
services.caddy.virtualHosts."blog.burningboard.org".extraConfig = ''
reverse_proxy 127.0.0.1:8080 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
'';
}
মূলত এটাই ছিল সব। NixOS এই ধরনের সার্ভিসগুলোকে সুন্দরভাবে কনফিগার করা এবং রিপ্রোডিউসিবল রাখা সত্যিই সহজ করে দেয়।