HeadlinesBriefing HeadlinesBriefing 12 languages

What I Self-Host

Hacker News ·

🇬🇧 English

I have had a foot in the self-hosting world for a long time, going back to running a website from a Linux box under my bed during my freshman year of university. Over the years I ran Myth TV and then XBMC, later known as Kodi.

After living in India, where streaming services are inexpensive by western standards, I found I was unwilling to pay western prices for Netflix, Disney Plus (Hotstar in India), and Spotify. I was also fed up with the engagement treadmill, especially with my son. Constant "recommended for you" and "up next" prompts caused conflict, and limiting content on each service was too much upkeep. So I cut the cord in a different sense, ditching streaming services for self-hosted Jellyfin. Within a year and a half, Jellyfin opened the door to self-hosting many other services, reducing my dependence on cloud providers and bringing welcome stability. I no longer face unnecessary redesigns, questionable new features, or floods of terms-of-service emails. I read release notes and decide when to upgrade.

My main rule is that I do not expose services directly to the public internet, except for VPN servers on my router. With AI-assisted hacking in mind, I don't think that is wise. My ISP uses CGNAT for IPv4, so my home network is not directly reachable over IPv4 anyway. My VPN is reachable only over IPv6, which has downsides, such as rarely working on public Wi-Fi.

I prefer running services natively and will containerize only complex ones. I've also dropped Docker in favor of Podman, which integrates well with systemd. Hardware is a Beelink S12 Pro mini PC with an Intel N100, 16 GB RAM, and a 512 GB SSD, plus a 6 TB drive for media. I paid EUR 180 for it, while the same listing now costs EUR 359.

View original article →


🇸🇦 العربية

ما أستضيفه ذاتيًا ولماذا تخليت عن البث

لطالما كانت لي قدم في عالم الاستضافة الذاتية، إذ يعود ذلك إلى السنة الأولى من دراستي الجامعية، حين كنت أشغّل موقعًا إلكترونيًا من جهاز Linux تحت سريري. وعلى مدى سنوات شغّلت Myth TV ثم XBMC، الذي عُرف لاحقًا باسم Kodi.

بعد أن عشت في الهند، حيث خدمات البث رخيصة وفق المعايير الغربية، وجدت أنني لا أرغب في دفع الأسعار الغربية مقابل Netflix وDisney Plus (Hotstar في الهند) وSpotify. كما ضقت بدوامة التفاعل، خصوصًا مع ابني. فقد كانت تنبيهات "موصى به لك" و"التالي" المتكررة تسبب خلافات، وكان تقييد المحتوى في كل خدمة على حدة يتطلب جهدًا كبيرًا. لذلك "قطعت الحبل" بمعنى مختلف، فتخليت عن خدمات البث واعتمدت Jellyfin المستضاف ذاتيًا. وخلال عام ونصف، فتح لي Jellyfin الباب لاستضافة خدمات كثيرة أخرى ذاتيًا، مما قلّل اعتمادي على مزودي السحابة ومنحني استقرارًا مرحبًا به. لم أعد أواجه إعادة تصميم المواقع دون داعٍ، أو ميزات جديدة مشكوك في قيمتها، أو سيلًا من رسائل تحديث شروط الخدمة. أقرأ ملاحظات الإصدارات وأقرر متى أرغب في الترقية.

قاعدتي الأساسية هي ألا أعرض أي خدمة مباشرة على الإنترنت العام، باستثناء خوادم VPN الموجودة على جهاز التوجيه. وبالنظر إلى الاختراق بمساعدة الذكاء الاصطناعي، لا أرى أن ذلك حكيم. يستخدم مزود الإنترنت لدي CGNAT لعناوين IPv4، لذلك لا يمكن الوصول إلى شبكتي المنزلية مباشرة عبر IPv4 أصلًا. أما VPN فلا يمكن الوصول إليه إلا عبر IPv6، وهذا له عيوب، منها أنه نادرًا ما يعمل على شبكات Wi-Fi العامة.

أفضّل تشغيل الخدمات بشكل أصلي، ولا أضعها في حاويات إلا إذا كانت معقدة. كما تخليت عن Docker لصالح Podman الذي يتكامل جيدًا مع systemd. أما العتاد فهو جهاز Beelink S12 Pro صغير بمعالج Intel N100 وذاكرة 16 GB وقرص SSD بسعة 512 GB، إضافة إلى قرص بسعة 6 TB للوسائط. دفعت 180 يورو ثمنه، بينما يُعرض الجهاز نفسه الآن بسعر 359 يورو.

لماذا تجنب عرض الخدمات المستضافة ذاتيًا مباشرة على الإنترنت؟

يؤدي عرض الخدمات مباشرة على الإنترنت العام إلى زيادة سطح الهجوم. يحافظ الكاتب على خدماته خاصة ويستخدم VPN يمكن الوصول إليه عبر IPv6 فقط، مما يحد من محاولات الاتصال غير المرغوب فيها.

العربية version →


🇧🇩 বাংলা

আমি যা নিজে হোস্ট করি এবং কেন স্ট্রিমিং ছেড়েছি

সেলফ-হোস্টিংয়ের জগতের সঙ্গে আমার সম্পর্ক অনেকদিনের, যা বিশ্ববিদ্যালয়ের প্রথম বর্ষে আমার বিছানার নিচের একটি Linux বক্স থেকে ওয়েবসাইট চালানো পর্যন্ত বিস্তৃত। বছরের পর বছর আমি Myth TV এবং তারপর XBMC চালিয়েছি, যা পরে Kodi নামে পরিচিত হয়।

ভারতে বসবাসের সময়, যেখানে পশ্চিমা মানদণ্ডে স্ট্রিমিং পরিষেবা অনেক সস্তা, আমি দেখলাম যে Netflix, Disney Plus (ভারতে Hotstar) এবং Spotify-এর জন্য পশ্চিমা দাম দিতে আমি রাজি নই। এ ছাড়া আমি বিশেষ করে আমার ছেলের কারণে এনগেজমেন্টের চক্রে বিরক্ত হয়ে উঠেছিলাম। ক্রমাগত "আপনার জন্য সুপারিশকৃত" ও "এরপর" প্রম্পট বিরোধের কারণ হচ্ছিল, এবং প্রতিটি পরিষেবায় কনটেন্ট সীমিত করা অনেক ঝামেলার ছিল। তাই আমি ভিন্ন অর্থে তার কেটে দিলাম, স্ট্রিমিং পরিষেবা ছেড়ে সেলফ-হোস্টেড Jellyfin গ্রহণ করলাম। দেড় বছরের মধ্যে Jellyfin আমার জন্য আরও অনেক পরিষেবা নিজে হোস্ট করার পথ খুলে দিল, ক্লাউড প্রদানকারীর ওপর আমার নির্ভরতা কমাল এবং একটি স্বাগত স্থিতিশীলতা দিল। এখন আর অপ্রয়োজনীয় ওয়েবসাইট রিডিজাইন, সন্দেহজনক নতুন ফিচার বা পরিষেবার শর্তাবলি আপডেটের ইমেইলের বন্যার মুখোমুখি হতে হয় না। আমি রিলিজ নোট পড়ি এবং কখন আপগ্রেড করব তা নিজে ঠিক করি।

আমার প্রধান নিয়ম হলো, আমার রাউটারের VPN সার্ভার ছাড়া কোনো পরিষেবা সরাসরি পাবলিক ইন্টারনেটে উন্মুক্ত করি না। AI-সহায়তায় হ্যাকিং-এর কথা মাথায় রেখে আমি মনে করি না এটা বুদ্ধিমানের কাজ। আমার ISP IPv4-এর জন্য CGNAT ব্যবহার করে, তাই আমার হোম নেটওয়ার্ক এমনিতেই IPv4-এর মাধ্যমে সরাসরি পৌঁছানো যায় না। আমার VPN শুধু IPv6-এ উপলব্ধ, যার কিছু অসুবিধা আছে, যেমন পাবলিক Wi-Fi-তে প্রায় কখনো কাজ করে না।

আমি পরিষেবাগুলো নেটিভভাবে চালাতে পছন্দ করি এবং শুধু জটিল পরিষেবাগুলোই কনটেইনারাইজ করি। আমি Docker ছেড়ে Podman ব্যবহার শুরু করেছি, যা systemd-এর সঙ্গে ভালোভাবে একীভূত হয়। হার্ডওয়্যার হলো একটি Beelink S12 Pro মিনি PC, যাতে আছে Intel N100 প্রসেসর, 16 GB RAM এবং 512 GB SSD, সঙ্গে মিডিয়ার জন্য একটি 6 TB ড্রাইভ। আমি এটি 180 ইউরোয় কিনেছিলাম, অথচ একই লিস্টিং এখন 359 ইউরো।

সেলফ-হোস্ট করা পরিষেবা সরাসরি ইন্টারনেটে উন্মুক্ত করা থেকে কেন বিরত থাকবেন?

পরিষেবাগুলো সরাসরি পাবলিক ইন্টারনেটে উন্মুক্ত করলে আক্রমণের ক্ষেত্র বাড়ে। লেখক তাঁর পরিষেবাগুলো ব্যক্তিগত রাখেন এবং শুধু IPv6-এ প্রবেশযোগ্য VPN ব্যবহার করেন, যা অবাঞ্ছিত সংযোগ প্রচেষ্টা সীমিত করে।

বাংলা version →


🇩🇪 Deutsch

Was ich selbst hoste und warum ich Streaming aufgegeben habe

Ich bin schon seit Langem in der Welt des Self-Hostings unterwegs, zurück bis in mein erstes Universitätsjahr, als ich eine Website von einem Linux-Rechner unter meinem Bett betrieb. Über die Jahre nutzte ich Myth TV und dann XBMC, später als Kodi bekannt.

Nachdem ich in Indien gelebt hatte, wo Streamingdienste nach westlichen Maßstäben extrem günstig sind, war ich nicht bereit, westliche Preise für Netflix, Disney Plus (in Indien Hotstar) und Spotify zu zahlen. Außerdem hatte ich das Engagement-Hamsterrad satt, besonders wegen meines Sohnes. Ständige Hinweise wie „Empfohlen für dich“ und „Als Nächstes“ führten zu Streit, und das Einschränken von Inhalten bei jedem Dienst war zu aufwendig. Also habe ich in einem anderen Sinn den Stecker gezogen: Ich habe die Streamingdienste aufgegeben und mich für selbst gehostetes Jellyfin entschieden. Innerhalb von eineinhalb Jahren hat Jellyfin mir die Tür dazu geöffnet, auch viele andere Dienste selbst zu hosten. Das verringerte meine Abhängigkeit von Cloud-Anbietern und brachte eine willkommene Stabilität. Ich werde nicht mehr mit unnötigen Website-Redesigns, fragwürdigen neuen Funktionen oder einer Flut von E-Mails zu Nutzungsbedingungen konfrontiert. Ich lese die Versionshinweise neuer Software und entscheide, ob und wann ich aktualisiere.

Ich habe einige Grundregeln. Mit Ausnahme der VPN-Server auf meinem Router stelle ich keinen Dienst direkt ins öffentliche Internet. Egal wie bequem es wäre oder wie sicher eine Anwendung ist. Gerade angesichts KI-gestützten Hackings halte ich das nicht für klug. Mein Internetanbieter nutzt außerdem CGNAT für IPv4-Adressen, weshalb mein Heimnetzwerk über IPv4 ohnehin nicht direkt erreichbar ist. Meine VPN-Server sind nur über IPv6 öffentlich erreichbar, was einige Nachteile hat, aber für meine Zwecke funktioniert und wahrscheinlich unerwünschte Verbindungsversuche verringert. Der größte Nachteil ist, dass mein VPN in öffentlichen WLAN-Netzen fast nie funktioniert, da diese selten IPv6 anbieten. Unterwegs schalte ich am Handy das WLAN aus und verbinde mich über mobile Daten, sofern ein Netz verfügbar ist.

Ich betreibe Dienste möglichst nativ und setze Container nur bei komplexen Diensten oder solchen mit vielen Abhängigkeiten ein. Liebe: ein Dienst, der aus einem einzigen Go-Binary besteht. Ein Dienst, der nur als Docker-Compose-Datei kommt und MySQL, Redis und drei weitere Container will? Dann suche ich bereits nach einer Alternative. Wenn die Abhängigkeiten nicht überwältigend sind, ist nativ besser, schneller und effizienter. Ich kann dieselben Verwaltungswerkzeuge und Befehle über mehrere Dienste hinweg nutzen. Es gibt keinen geistigen Mehraufwand, in einen Container zu wechseln, um einen Befehl auszuführen, festzustellen, dass im Container curl fehlt, dass ein anderer busybox nutzt und daher alle Argumente anders sind, oder sich mit virtuellen Netzwerken und Host-Port-Mapping zu beschäftigen.

Damit zusammenhängend: Ich nutze Docker nicht mehr. Das ist keine grundsätzliche Haltung, aber ich habe es satt gehabt, ein komplett separates Dienststeuerungssystem auf meinem Server zu verwalten. Ich nutze bereits systemd, und inzwischen ist die Integration von Podman mit systemd ausgezeichnet.

Hardware: Letztes Jahr habe ich einen Beelink-Mini-PC gekauft, konkret ein S12 Pro mit Intel-N100-Prozessor, 16 GB RAM und einer internen 512-GB-SSD. Es war vor der RAM-Krise, und ich zahlte 180 Euro. Das gleiche Angebot auf Amazon kostet aktuell 359 Euro. Autsch! An den Server ist eine 6-TB-Festplatte für Mediendaten angeschlossen. Mein Kommentar auf Hacker News darüber, was ich selbst hoste, führte zu Fragen, wie all das mit 16 GB RAM laufen kann. Wie ich unten beschreibe, gibt es einige Entscheidungen, die den Ressourcenbedarf meines Servers senken, aber letztlich stellt sich heraus, dass man nicht …

Warum sollte man selbst gehostete Dienste nicht direkt dem Internet aussetzen?

Wer Dienste direkt dem öffentlichen Internet aussetzt, vergrößert die Angriffsfläche. Der Autor hält seine Dienste privat und nutzt nur einen über IPv6 erreichbaren VPN, was unerwünschte Verbindungsversuche einschränkt.

Deutsch version →


🇪🇸 Español

Lo que autoalojo y por qué dejé el streaming

Llevo mucho tiempo con un pie en el mundo del autoalojamiento, desde que, durante mi primer año de universidad, ejecutaba un sitio web desde una caja Linux debajo de mi cama. A lo largo de los años usé Myth TV y después XBMC, más tarde conocido como Kodi.

Tras vivir en India, donde los servicios de streaming son baratos según los estándares occidentales, comprobé que no estaba dispuesto a pagar precios occidentales por Netflix, Disney Plus (Hotstar en India) y Spotify. Además, estaba harto de la cinta de correr del engagement, sobre todo con mi hijo. Las constantes sugerencias de «recomendado para ti» y «a continuación» provocaban conflictos, y limitar el contenido en cada servicio suponía demasiado mantenimiento. Así que corté el cable en un sentido distinto: abandoné los servicios de streaming y pasé a Jellyfin autoalojado. En año y medio, Jellyfin me abrió la puerta a autoalojar muchos otros servicios, reduciendo mi dependencia de los proveedores en la nube y aportando una estabilidad muy bienvenida. Ya no me enfrento a rediseños innecesarios, nuevas funciones dudosas ni a una avalancha de correos sobre cambios en los términos del servicio. Leo las notas de las versiones y decido cuándo quiero actualizar.

Mi norma principal es no exponer servicios directamente a internet público, salvo los servidores VPN de mi router. Teniendo en cuenta los ataques asistidos por IA, no creo que sea prudente. Mi proveedor de internet usa CGNAT para IPv4, así que mi red doméstica tampoco es accesible directamente por IPv4. Mi VPN solo es accesible por IPv6, lo que tiene inconvenientes, como que casi nunca funciona en redes Wi-Fi públicas.

Prefiero ejecutar los servicios de forma nativa y solo meto en contenedores los más complejos. También abandoné Docker a favor de Podman, que se integra muy bien con systemd. El hardware es un mini PC Beelink S12 Pro con procesador Intel N100, 16 GB de RAM y un SSD de 512 GB, además de un disco de 6 TB para los medios. Lo pagué 180 EUR; el mismo modelo cuesta ahora 359 EUR.

¿Por qué evitar exponer los servicios autoalojados directamente a internet?

Exponer los servicios directamente a internet público aumenta la superficie de ataque. El autor mantiene sus servicios privados y usa solo una VPN accesible por IPv6, lo que limita los intentos de conexión no deseados.

Español version →


🇫🇷 Français

Ce que j'héberge moi-même et pourquoi j'ai abandonné le streaming

J'ai un pied dans le monde de l'auto-hébergement depuis longtemps, depuis ma première année d'université, quand je faisais tourner un site web sur une machine Linux sous mon lit. Pendant des années, j'ai utilisé Myth TV, puis XBMC, devenu plus tard Kodi.

Après avoir vécu en Inde, où les services de streaming sont peu chers selon les standards occidentaux, j'ai refusé de payer les prix occidentaux pour Netflix, Disney Plus (Hotstar en Inde) et Spotify. J'en avais aussi assez de la course à l'engagement, surtout avec mon fils. Les invitations constantes « recommandé pour vous » et « à suivre » provoquaient des conflits, et limiter le contenu sur chaque service demandait trop de travail. J'ai donc coupé le cordon dans un autre sens, en abandonnant les services de streaming pour Jellyfin auto-hébergé. En un an et demi, Jellyfin m'a ouvert la voie vers l'auto-hébergement de nombreux autres services, réduisant ma dépendance aux fournisseurs cloud et m'apportant une stabilité bienvenue. Je ne suis plus confronté à des refontes inutiles de sites, à de nouvelles fonctionnalités discutables ou à un déluge d'e-mails sur les conditions d'utilisation. Je lis les notes de version et je décide quand mettre à jour.

Ma règle principale est de ne jamais exposer directement de services à Internet public, à l'exception des serveurs VPN sur mon routeur. Compte tenu du piratage assisté par IA, je ne pense pas que ce soit judicieux. Mon fournisseur d'accès utilise le CGNAT pour l'IPv4, donc mon réseau domestique n'est de toute façon pas joignable directement en IPv4. Mon VPN n'est accessible qu'en IPv6, ce qui a quelques inconvénients, comme le fait de ne presque jamais fonctionner sur les Wi-Fi publics.

Je préfère exécuter les services de manière native et ne conteneuriser que les plus complexes. J'ai aussi abandonné Docker au profit de Podman, qui s'intègre très bien avec systemd. Le matériel est un mini PC Beelink S12 Pro avec un processeur Intel N100, 16 Go de RAM et un SSD de 512 Go, auquel s'ajoute un disque de 6 To pour les médias. Je l'ai payé 180 EUR, alors que la même offre coûte aujourd'hui 359 EUR.

Pourquoi éviter d'exposer directement les services auto-hébergés sur Internet ?

Exposer directement des services sur Internet public augmente la surface d'attaque. L'auteur garde ses services privés et n'utilise qu'un VPN accessible en IPv6, ce qui limite les tentatives de connexion indésirables.

Français version →


🇮🇳 हिन्दी

मैं क्या सेल्फ-होस्ट करता हूँ और मैंने स्ट्रीमिंग क्यों छोड़ी

मेरा सेल्फ-होस्टिंग की दुनिया से लंबे समय से जुड़ाव रहा है, जो विश्वविद्यालय के पहले वर्ष में अपने बिस्तर के नीचे रखे एक Linux बॉक्स से वेबसाइट चलाने तक जाता है। वर्षों तक मैंने Myth TV और फिर XBMC चलाया, जिसे बाद में Kodi के नाम से जाना गया।

भारत में रहने के दौरान, जहाँ स्ट्रीमिंग सेवाएँ पश्चिमी मानकों के हिसाब से बहुत सस्ती हैं, मैंने पाया कि मैं Netflix, Disney Plus (भारत में Hotstar) और Spotify के लिए पश्चिमी कीमतें चुकाने को तैयार नहीं था। मैं "आपके लिए अनुशंसित" वाले चक्र से भी तंग आ चुका था, खासकर अपने बेटे के कारण। लगातार "recommended for you" और "up next" संकेतों से झगड़े होते थे, और हर सेवा पर सामग्री सीमित करना बहुत अधिक झंझट था। इसलिए मैंने एक अलग अर्थ में केबल काट दी, स्ट्रीमिंग सेवाएँ छोड़कर सेल्फ-होस्टेड Jellyfin अपनाया। डेढ़ साल के भीतर Jellyfin ने मेरे लिए कई अन्य सेवाएँ सेल्फ-होस्ट करने का रास्ता खोल दिया, क्लाउड प्रदाताओं पर मेरी निर्भरता घटाई और स्वागत योग्य स्थिरता दी। अब मुझे अनावश्यक वेबसाइट रीडिज़ाइन, संदिग्ध नई सुविधाओं या सेवा शर्तों के अपडेट वाले ईमेलों की बाढ़ का सामना नहीं करना पड़ता। मैं रिलीज़ नोट्स पढ़ता हूँ और तय करता हूँ कि कब और अपग्रेड करना है।

मेरा मुख्य नियम है कि मैं अपने राउटर पर लगे VPN सर्वरों को छोड़कर किसी भी सेवा को सीधे सार्वजनिक इंटरनेट पर उजागर नहीं करता। AI-सहायता प्राप्त हैकिंग को ध्यान में रखते हुए, मुझे नहीं लगता कि यह समझदारी है। मेरा ISP IPv4 के लिए CGNAT का उपयोग करता है, इसलिए मेरा होम नेटवर्क वैसे भी IPv4 के जरिए सीधे पहुँच योग्य नहीं है। मेरा VPN केवल IPv6 पर उपलब्ध है, जिसकी कुछ कमियाँ हैं, जैसे सार्वजनिक Wi-Fi पर इसका लगभग कभी काम न करना।

मैं सेवाओं को मूल रूप से (natively) चलाना पसंद करता हूँ और केवल जटिल सेवाओं को कंटेनराइज़ करता हूँ। मैंने Docker छोड़कर Podman अपना लिया है, जो systemd के साथ अच्छी तरह एकीकृत होता है। हार्डवेयर एक Beelink S12 Pro मिनी PC है, जिसमें Intel N100, 16 GB RAM और 512 GB SSD है, साथ ही मीडिया के लिए 6 TB ड्राइव। मैंने इसे 180 यूरो में खरीदा था, जबकि वही लिस्टिंग अब 359 यूरो की है।

सेल्फ-होस्टेड सेवाओं को सीधे इंटरनेट पर उजागर करने से क्यों बचें?

सेवाओं को सीधे सार्वजनिक इंटरनेट पर उजागर करने से हमले की सतह बढ़ जाती है। लेखक अपनी सेवाएँ निजी रखते हैं और केवल IPv6 से पहुँच योग्य VPN का उपयोग करते हैं, जिससे अवांछित कनेक्शन प्रयास सीमित हो जाते हैं।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Apa yang Saya Self-Host dan Mengapa Saya Meninggalkan Streaming

Saya sudah lama berkecimpung di dunia self-hosting, sejak tahun pertama kuliah ketika saya menjalankan situs web dari sebuah kotak Linux di bawah tempat tidur saya. Selama bertahun-tahun saya menggunakan Myth TV, lalu XBMC, yang kemudian dikenal sebagai Kodi.

Setelah tinggal di India, tempat layanan streaming sangat murah menurut standar Barat, saya merasa tidak sanggup membayar harga Barat untuk Netflix, Disney Plus (Hotstar di India), dan Spotify. Saya juga sudah muak dengan jebakan keterlibatan, terutama demi anak saya. Notifikasi "direkomendasikan untuk Anda" dan "berikutnya" yang terus-menerus memicu konflik, dan membatasi konten di setiap layanan terlalu merepotkan. Maka saya "memutus kabel" dalam arti yang berbeda, dengan meninggalkan layanan streaming dan beralih ke Jellyfin yang di-self-host. Dalam waktu satu setengah tahun, Jellyfin membuka pintu bagi saya untuk meng-self-host banyak layanan lain, mengurangi ketergantungan saya pada penyedia cloud, dan memberikan stabilitas yang menyenangkan. Saya tidak lagi menghadapi desain ulang situs yang tidak perlu, fitur baru yang meragukan, atau serbuan email tentang pembaruan syarat layanan. Saya membaca catatan rilis dan memutuskan kapan akan meningkatkan versi.

Saya memiliki beberapa aturan dasar. Kecuali server VPN yang berjalan di router saya, saya tidak mengekspos layanan apa pun langsung ke internet publik. Tidak peduli seberapa praktis atau seaman apa pun aplikasinya. Terutama dengan peretasan berbantuan AI, saya rasa itu tidak bijaksana. ISP saya juga menggunakan CGNAT untuk alamat IPv4, jadi jaringan rumah saya tidak dapat dijangkau langsung dari internet publik melalui IPv4. Server VPN saya hanya dapat dijangkau secara publik melalui IPv6, keterbatasan yang punya beberapa kelemahan tetapi masih cukup untuk kebutuhan saya, dan kemungkinan membantu membatasi percobaan koneksi yang tidak diinginkan. Kelemahan terbesarnya adalah VPN saya hampir tidak pernah berfungsi di jaringan Wi-Fi publik, karena jaringan seperti itu jarang menyediakan IPv6. Saat menggunakan ponsel, saya bisa mematikan Wi-Fi dan terhubung lewat data seluler… jika ada sinyal.

Saya lebih suka menjalankan layanan secara native jika memungkinkan, tetapi akan memasukkannya ke dalam container untuk layanan yang kompleks atau yang punya banyak dependensi. Yang saya sukai: layanan yang berupa satu biner Go. Layanan yang hanya tersedia sebagai file Docker compose dan minta dijalankan bersama MySQL, Redis, dan tiga container lain? Saya sudah mencari alternatifnya. Jika dependensinya tidak memberatkan, native lebih baik, lebih cepat, dan lebih efisien. Saya bisa memakai alat pengelolaan dan perintah yang sama untuk banyak layanan. Tidak ada beban mental harus masuk ke container ini hanya untuk menjalankan sebuah perintah, lalu mendapati container ini tidak punya curl, container itu memakai busybox sehingga semua argumennya berbeda, atau harus mengurus jaringan virtual dan pemetaan port host.

Terkait itu, saya sudah tidak lagi memakai Docker. Ini bukan posisi prinsipil, tetapi saya jenuh harus mengelola sistem kontrol layanan yang sepenuhnya terpisah di server saya. Saya sudah memakai system

Bahasa Indonesia version →


🇯🇵 日本語

自分でホストしているもの、そして私がストリーミングをやめた理由

私は大学の1年目に、ベッドの下にあるLinuxマシンでウェブサイトを運営していた頃から、ずっとセルフホスティングの世界に関わってきました。数年間はMyth TV、その後XBMC(のちにKodiとして知られる)を使っていました。

インドに住んでいた頃、そこではストリーミングサービスが欧米の基準から見ると非常に安価でした。しかし、私はNetflix、Disney Plus(インドではHotstar)、Spotifyに欧米の価格を払うつもりはありませんでした。また、特に息子のことで、エンゲージメントを追い求める仕組みにもうんざりしていました。「あなたへのおすすめ」や「次に再生」が絶えず表示されることで衝突が起きていましたし、各サービスでコンテンツを制限するのは手間がかかりすぎました。そこで、別の意味でコードを切ることにし、ストリーミングサービスをやめてセルフホストしたJellyfinに切り替えました。その後1年半ほどで、Jellyfinをきっかけに他の多くのサービスもセルフホストするようになり、クラウドプロバイダーへの依存を減らし、ありがたい安定性を得ました。不要なサイトのリニューアル、疑問の残る新機能、利用規約の更新メールの嵐に悩まされることもなくなりました。新バージョンのリリースノートを読み、アップグレードするかどうか、いつするかを自分で決めています。

私には基本ルールがあります。ルーターで動くVPNサーバーを除き、サービスを直接インターネットに公開することはしません。どれほど便利でも、どれほど安全なアプリケーションでも同じです。特にAIを使った攻撃を考えると、賢明ではないと考えています。また、私のISPはIPv4にCGNATを使用しているため、自宅のネットワークはIPv4経由では直接到達できません。VPNサーバーはIPv6でのみ公開されており、これには欠点もありますが、私の用途には十分で、不正な接続試行を減らす効果もあるでしょう。最大の欠点は、公共のWi-FiではIPv6が提供されていないことが多く、VPNがほぼ機能しないことです。スマートフォンを使うときは、Wi-Fiを切ってモバイルデータ通信で接続しますが、電波があればの話です。

できる限りサービスをネイティブに動かすことを好み、複雑なものや依存関係が多いものだけをコンテナ化します。Goの単一バイナリのサービスは大歓迎です。一方で、Docker Composeファイルしか提供されず、MySQL、Redis、さらに3つのコンテナを必要とするようなサービスは、すぐに代替品を探します。依存関係が多すぎなければ、ネイティブのほうが優れていて、速く、効率的です。複数のサービスで同じ管理ツールやコマンドを使えますし、コンテナに入ってコマンドを実行する手間や、curlが入っていないことに気づく煩わしさ、busyboxのため引数がすべて異なるといった問題、仮想ネットワークやホストのポートマッピングを扱う負担もありません。

関連して、今の私はDockerを使っていません。原則的な理由ではありませんが、サーバー上で別のサービス管理システムを扱うことに疲れたのです。すでにsystemdを使っており、現在ではPodmanのsystemdとの統合が非常に優れています。

ハードウェア:昨年、Beelinkのミニ PCを購入しました。具体的にはS12 Proで、Intel N100プロセッサ、16 GB RAM、512 GBの内蔵SSDを搭載しています。価格はユーロで180でした。ブームの前だったからです。同じ商品のAmazonでの現在の価格は359ユーロです。ああ、高い!サーバーには、メディア保存用の6 TBのハードドライブが接続されています。Hacker Newsに投稿した「セルフホストしているもの」のコメントに、16 GB RAMでこれらすべてをどう動かしているのかという質問が寄せられました。以下に説明するように、サーバーの負荷を減らす選択をいくつかしていますが、結局のところ…

セルフホストしたサービスを直接インターネットに公開しないのはなぜですか?

サービスを公共のインターネットに直接公開すると、攻撃対象領域が広がります。筆者はサービスを非公開に保ち、IPv6でのみ到達可能なVPNだけを使うことで、望ましくない接続試行を制限しています。

日本語 version →


🇧🇷 Português

O que eu hospedo por conta própria e por que abandonei o streaming

Tenho um pé no mundo da hospedagem própria há muito tempo, desde o meu primeiro ano de faculdade, quando rodava um site a partir de uma máquina Linux debaixo da minha cama. Ao longo dos anos, usei o Myth TV e depois o XBMC, mais tarde conhecido como Kodi.

Depois de morar na Índia, onde os serviços de streaming são baratos segundo os padrões ocidentais, percebi que não estava disposto a pagar preços ocidentais pela Netflix, pela Disney Plus (Hotstar na Índia) e pelo Spotify. Eu também estava cansado da esteira do engajamento, especialmente por causa do meu filho. As constantes sugestões de "recomendado para você" e "a seguir" geravam conflitos, e limitar o conteúdo em cada serviço dava trabalho demais. Então eu cortei o cabo em outro sentido, abandonando os serviços de streaming em favor do Jellyfin hospedado por mim. Em um ano e meio, o Jellyfin abriu caminho para hospedar muitos outros serviços, reduzindo minha dependência de provedores de nuvem e trazendo uma estabilidade bem-vinda. Não sou mais confrontado com redesenhos desnecessários de sites, novos recursos de valor duvidoso ou uma enxurrada de e-mails sobre atualizações dos termos de serviço. Leio as notas de lançamento e decido quando atualizar.

Minha regra principal é não expor serviços diretamente à internet pública, exceto pelos servidores VPN no meu roteador. Considerando o hacking assistido por IA, não acho isso sensato. Meu provedor usa CGNAT para IPv4, então minha rede doméstica já não é acessível diretamente por IPv4. Minha VPN só é acessível por IPv6, o que tem desvantagens, como quase nunca funcionar em redes Wi-Fi públicas.

Prefiro rodar os serviços nativamente e só coloco em contêineres os mais complexos. Também abandonei o Docker em favor do Podman, que se integra muito bem com o systemd. O hardware é um mini PC Beelink S12 Pro com processador Intel N100, 16 GB de RAM e SSD de 512 GB, além de um disco de 6 TB para mídia. Paguei 180 EUR por ele; o mesmo anúncio custa hoje 359 EUR.

Por que evitar expor serviços hospedados por conta própria diretamente à internet?

Expor serviços diretamente à internet pública aumenta a superfície de ataque. O autor mantém seus serviços privados e usa apenas uma VPN acessível por IPv6, o que limita tentativas de conexão indesejadas.

Português version →


🇷🇺 Русский

Что я размещаю у себя и почему отказался от стриминга

Я давно связан с миром самостоятельного хостинга, ещё с первого курса университета, когда запускал сайт на Linux-машине под своей кроватью. Несколько лет я использовал Myth TV, а затем XBMC, позже известный как Kodi.

После жизни в Индии, где стриминговые сервисы дешёвые по западным меркам, я понял, что не хочу платить западные цены за Netflix, Disney Plus (Hotstar в Индии) и Spotify. Я также устал от постоянной погони за вовлечённостью, особенно из-за сына. Бесконечные подсказки «рекомендуем вам» и «далее» вызывали конфликты, а ограничивать контент в каждом сервисе было слишком хлопотно. Поэтому я в другом смысле перерезал шнур, отказавшись от стриминговых сервисов в пользу самостоятельно размещённого Jellyfin. За полтора года Jellyfin открыл дорогу к самостоятельному хостингу многих других сервисов, уменьшил мою зависимость от облачных провайдеров и дал желанную стабильность. Меня больше не преследуют ненужные редизайны сайтов, сомнительные новые функции и поток писем об обновлении условий использования. Я читаю заметки о выпусках и сам решаю, когда обновляться.

Мое главное правило: я не открываю сервисы напрямую в публичный интернет, кроме VPN-серверов на роутере. Учитывая взлом с помощью ИИ, я не считаю это разумным. Мой провайдер использует CGNAT для IPv4, поэтому моя домашняя сеть и так недоступна напрямую по IPv4. Мой VPN доступен только по IPv6, что имеет недостатки, например, он почти никогда не работает в публичных Wi-Fi сетях.

Я предпочитаю запускать сервисы нативно и помещаю в контейнеры только сложные. Я также отказался от Docker в пользу Podman, который хорошо интегрируется с systemd. Оборудование: мини-ПК Beelink S12 Pro с процессором Intel N100, 16 ГБ оперативной памяти и SSD на 512 ГБ, плюс диск на 6 ТБ для медиа. Я заплатил за него 180 евро, а такое же объявление сейчас стоит 359 евро.

Почему не стоит открывать самостоятельно размещённые сервисы напрямую в интернет?

Открытие сервисов в публичный интернет увеличивает поверхность атаки. Автор держит свои сервисы закрытыми и использует только VPN, доступный по IPv6, что ограничивает нежелательные попытки подключения.

Русский version →


🇨🇳 简体中文

我自建的服务,以及我为何放弃流媒体

很长一段时间里,我都与自托管世界有着紧密的联系,可以追溯到大学新生时,我在床底下的一台 Linux 机器上运行一个网站。这些年来,我先后使用过 Myth TV 和 XBMC,后者后来更名为 Kodi。

在印度生活期间,那里的流媒体服务以西方标准衡量非常便宜,但我不愿为 Netflix、Disney Plus(在印度称为 Hotstar)和 Spotify 支付西方的价格。我还厌倦了让人停不下来的内容推送,尤其是我的儿子。“为你推荐”和“接下来播放”等提示经常引发冲突,而且在每项服务上限制内容又太过繁琐。因此,我以另一种意义上的切断线缆,放弃了流媒体服务,改用自托管的 Jellyfin。一年半之后,Jellyfin 为我打开了自托管许多其他服务的大门,减少了我对云服务提供商的依赖,并带来了宝贵的稳定性。我不再需要应对不必要的网站改版、值得怀疑的新功能,或是铺天盖地的服务条款更新邮件。我会阅读版本发布说明,再决定是否以及何时升级。

我的主要原则是,除了路由器上的 VPN 服务器外,我不会将任何服务直接暴露在公共互联网上。考虑到AI 辅助黑客攻击,我认为这样做并不明智。我的互联网服务提供商对 IPv4 采用 CGNAT,因此我的家庭网络本来也无法通过 IPv4 直接访问。我的 VPN 仅可通过 IPv6 访问,这有一些缺点,例如在公共 Wi-Fi 上几乎无法使用。

我倾向于原生运行服务,只有复杂的服务才会放入容器中。我还放弃了 Docker,转而使用与 systemd 集成良好的 Podman。硬件方面,我使用的是一台搭载英特尔 N100、16 GB 内存和 512 GB 固态硬盘的 Beelink S12 Pro 迷你主机,另外还有一块用于存放媒体的 6 TB 硬盘。我当时花了 180 欧元购买,而如今同款售价为 359 欧元。

为什么要避免将自托管服务直接暴露在互联网上?

将服务直接暴露在公共互联网上会增加攻击面。作者将服务保持在私网中,仅通过可经 IPv6 访问的 VPN 连接,从而减少了不必要的连接尝试。

简体中文 version →