# Posts

## Skin routine

I don’t know how to answer the “why?” or “whyyyyy?” or even “whe the f***?” I have a skin routine. Last year, after I came to Germany, I asked a female friend about how to do skin care. She touched my face and said “Knock on wood, you have good skin!”. So… idk why I decided to take extra care of my skin, but I did! Generaly speaking, things like this make me feel good about myself. Like I’m doing something positive while not being tortured! It’s always fun to rub a creme on your face, or gently message it. Even cleaning the face skin feels refreshing. Everything also smells nice! ...

## INET Logo That Breathes — From CAD to LEDs to a Calm Little Server

I didn’t add a warning sign to the room. I taught the logo to breathe. ;-D The Rotunde is a good room for bold ideas and yummy coffee. The door sighs shut and the outside world gives up on us. The only thing it’s not good at is ventilating itself. Forty minutes into a group meeting, or a sressful defence, and we all feel like sleeping and running back to our offices! ...

## Movie review: Scent of a Woman

I’m not a big movie watcher. In fact, I don’t remember the last time I watched a whole movie in a single day. It’s not that I don’t enjoy it, it’s that I want to do this with at least another person. It feels much better to not be alone when watching a movie for me for some reason. Buuuut, I watched Scent of a Woman on Sunday, and after my therapist encouraged me to do so. ...

## Hobbies

When I started my PhD, I was told “get yourself a hobby!” many many times by both my advisor, and the director of the group I worked in. In fact, when being interviewed for the position, I was asked about my hobbies. For some reason I think I have like the weirdest hobbies of all time. Like, you know, people binge series, go to clubs, bars, hang out, and so on. But I always had interests in things that when I talk about people get weirded out, or at least some of them do so. To be honest though, when I talk more about some of my hobbies, they do show enthusiasm, but it feels like there is a clear gap between us afterwards. ...

## Relationships

Notice: You’ll hear me ranting in this post, so buckle up, or just go to another fun post. I am very vulnerable right now and want to put out my story without naming anyone. So… do you also think you’re a lover boy, kind, nice person? So do I! I think I’m actually really good at making friends with people. Like you know, you start introducing yourself, asking them some fun personal questions about hobbies or other stuff, and then you eventually start talking about other things. ...

## Dockerizing my Minecraft Server + Geyser: from 'no space left' to stable releases

How I containerized a Java Minecraft server with Geyser, hit a /var space wall, and locked the server to the latest stable release.

## Running my blog on Tor (.onion) and the Clearnet with Hugo + PaperMod

TL;DR — The site is built once (Hugo project), published twice: Onion: http://fjthpp2h3mj2rup25r3psmqamutnkbvxbpltlohdthw6fscgo3t6bpad.onion/ via Tor, no TLS/HSTS, bound to 127.0.0.1:3301. Clearnet: https://blog.alipourimjourneys.ir behind Cloudflare, Let’s Encrypt cert, Onion-Location header pointing to the onion mirror. 1) Tor hidden service (onion) basics I used Tor’s v3 onion services and mapped onion port 80 → my local web server on 127.0.0.1:3301. Install & configure Tor (Debian/Ubuntu): sudo apt update && sudo apt install -y tor sudoedit /etc/tor/torrc Add: ...

## Stealth Trojan VPN Behind Cloudflare Guide

Introduction So you want a VPN that doesn’t scream “I am a VPN” to every censor and firewall out there? Welcome to the world of Trojan over WebSocket + TLS behind Cloudflare. This guide not only shows you how to set it up but also sprinkles in some debugging magic so you can figure out why things break (and they will break, trust me). We’ll anonymise domains and secrets, so substitute with your own: ...

## Self-Hosting HedgeDoc with Docker + Nginx + Let's Encrypt

HedgeDoc is an open-source collaborative Markdown editor. Think Google Docs for Markdown: multiple people can edit the same note in real-time, with support for diagrams, math, polls, and slide decks. In this post we’ll walk through setting up your own instance on a server, secured with HTTPS. Prerequisites A Linux server with Docker and Docker Compose A domain name pointing to your server (e.g. notes.alipourimjourneys.ir) Nginx installed for reverse proxying Certbot for Let’s Encrypt certificates 1. Create the project directory mkdir ~/hedgedoc && cd ~/hedgedoc 2. Create .env POSTGRES_PASSWORD=ChangeThisStrongPassword HD_DOMAIN=notes.alipourimjourneys.ir Generate a strong password with: ...

## Self-hosting Matrix + Element Call with LiveKit: from zero to working (and the [not so!!] fun debugging along the way)

TL;DR: The call kept saying “waiting for media” because the browser never opened a WebSocket to LiveKit. The root cause was duplicate Access-Control-Allow-Origin headers on /sfu/get (CORS), which stopped the JWT response. Fixing CORS and ensuring the WS proxy worked (HTTP 101 in logs) solved it. What I’m building A Matrix homeserver (Synapse) at matrix.example.com (replace with your domain). TURN/STUN (coTURN) for NAT traversal. Element Call backed by LiveKit, fronted by rtc.example.com. Nginx (host) as the single reverse proxy for everything. Cloudflare DNS (with rtc.* set to DNS-only, no orange cloud). UFW firewall opened for Matrix federation, TURN, and LiveKit media ports. I used Docker for Synapse, PostgreSQL, LiveKit and the JWT helper. I used host Nginx (not Nginx in Docker) to avoid port binding conflicts on 80/443/8448. ...

RSS