[{"content":" Hey, I\u0026rsquo;m Sebastian \u0026#x1f44b; # Welcome to my minimalist blog.\nHere I share my projects, my work in the Homelab, and occasionally some personal experiences - like our move to Paraguay.\nYou can find out more about me in the profile \u0026#x261d;\u0026#xfe0f;\nEnjoy reading and discovering!\n","date":"22 June 2026","externalUrl":null,"permalink":"/","section":"","summary":"","title":"","type":"page"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/blogging/","section":"Tags","summary":"","title":"Blogging","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/blowfish/","section":"Tags","summary":"","title":"Blowfish","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/catppuccin/","section":"Tags","summary":"","title":"Catppuccin","type":"tags"},{"content":"Those who have known my blog for a while might not even have noticed the change right away, and that’s actually a good sign. The content remains the same, as do the URLs. What has changed is the underlying framework: the Hugo theme.\nFor a long time, this blog was running on the following setup:\nadityatelange/hugo-PaperMod A fast, clean, responsive Hugo theme. HTML 13694 3398 A slim, fast, and widely used theme for Hugo.\nPaperMod did a great job, and I was satisfied with the result. Over time, I made some adjustments and additions to it. The Hugo update also brought about some changes to the language parameters, which I needed to modify accordingly.\nBy chance, I came across Blowfish, and what I saw there immediately caught my attention. Not because PaperMod was bad, but because Blowfish includes some useful features that directly improve the blog’s usability—features that I would have had to implement myself in PaperMod.\nWhat convinced me about Blowfish # Blowfish is a modern Hugo theme created by Nuno Coração, which is built on Tailwind CSS and looks significantly more contemporary than PaperMod. What convinced me wasn’t just its appearance, but mainly the features that truly make a difference in everyday use.\nGitHub-style alerts can be directly added using Markdown, and this is possible without having to use any custom shortcodes.\nNote This is what a note looks like when it’s written directly in Markdown format.\nWith PaperMod, I would have to write my own shortcode and CSS for that. With Blowfish, I just type \u0026gt; [!NOTE] and that’s it.\nRepo cards features for GitHub, Forgejo, and Codeberg; icon support; built-in search functionality as an overlay; a Zen mode for uninterrupted reading; accessibility settings (font size, blur effect, highlighting of links), and all of this comes pre-installed with Blowfish, without any need for me to make any adjustments myself.\nIn addition, there’s a very active community and a documentation that’s really excellent.\nnunocoracao/blowfish Personal Website \u0026amp; Blog Theme for Hugo HTML 2812 731 The migration process was more complicated than expected # It would be dishonest of me to claim that the migration process was easy. Blowfish has a different configuration structure compared to PaperMod; instead of having a single hugo.yaml, there are multiple files under config/_default/:\nconfig/_default/ ├── hugo.toml ├── languages.de.toml ├── languages.en.toml ├── languages.es.toml ├── markup.toml ├── menus.de.toml ├── menus.en.toml ├── menus.es.toml └── params.toml This might seem like more work at first, but in the long run it’s much more straightforward to manage, especially for a multilingual blog like mine.\nThe actual the real effort task was to migrate all the posts to the Page Bundles: Instead of having individual .md files, each article now has its own folder containing index.md, index.de.md, index.es.md and all the corresponding images right beside them. This makes the project much neater overall.\ncontent/posts/my-blogpost/ ├── background.webp ├── featured.webp ├── index.de.md ├── index.es.md └── index.md What I built myself and what Blowfish already includes # With PaperMod, I wasn’t satisfied with the default settings, so over time I built and modified several things myself: an extended Table of Contents (TOC), a “Series” function for multi-part articles, and the integration of Cactus Comments – a privacy-friendly commenting system based on Matrix.\nBlowfish comes with the TOC (Table of Contents) and series structure out of the box; everything is configurable via params.toml – no need for any custom template code. This saved me from having to create several custom partials myself, which I could simply delete after the migration was complete.\nI continue to use the Cactus Comments plugin because it fits perfectly with my self-hosted Matrix Homeserver. The integration now works through Blowfish’s official comments.html hook – which is much cleaner than before. I also took the opportunity to install the new version of Cactus, which supports multiple languages and isAuthenticated.\nThis was particularly important: on the Synapse side, I was able to re-enable enable_authenticated_media: true, which significantly improves media security.\nCatppuccin as color scheme # Those who know my blog know that Catppuccin is my favorite palette, in the Terminal, Neovim, and on my blog. Blowfish allows for the use of custom color schemes via a simple CSS file located at assets/css/schemes/catppuccin.css.\nThe special thing about this is that Blowfish uses Tailwind CSS along with CSS variables for all the colors. This allows for a clean and consistent representation of both Catppuccin Latte (Light Mode) and Catppuccin Mocha (Dark Mode):\n--color-neutral-* is used for the background and text colors --color-primary-* is used for the blue color (links, buttons) --color-secondary-* is used for the mauve color (for inline code, badges) The result is a blog that feels like it belongs perfectly to my entire Linux setup at home.\nWhat I miss # Honesty is important here: PaperMod was faster. It’s a minimalist theme with minimal overhead, and you can tell that from both the build times and the page weight. Blowfish includes more JavaScript and CSS files; it’s not a dramatic difference, but it’s worth mentioning nonetheless.\nAdditionally, Blowfish is built on Tailwind, which means that anyone who wants to make custom modifications must be familiar with the Tailwind classes or be willing to learn something new. This isn’t necessarily a disadvantage, but it does represent a difference from PaperMod, where you could simply override CSS variables.\nConclusion # The switch was worth it. Blowfish looks more modern visually, has more features, and allows me to do many things that I would have had to build myself with PaperMod. The migration process was complicated, but it was worthwhile; now the blog is on a solid foundation.\nFor those using Hugo and considering choosing a theme, I recommend taking a look at blowfish.page. The demo page shows many of the features in action, and getting started is easy thanks to the comprehensive documentation available.\nIf you have any questions about migration or how to customize Catppuccin, feel free to leave a comment!\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"22 June 2026","externalUrl":null,"permalink":"/posts/from-papermod-to-blowfish-why-i-switched-my-hugo-theme/","section":"Posts","summary":"After years with PaperMod I switched my Hugo blog to Blowfish. What convinced me, what’s different, and why Catppuccin plays a role.","title":"From PaperMod to Blowfish: Why I changed my Hugo theme","type":"posts"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/categories/techlab/","section":"Categories","summary":"","title":"Techlab","type":"categories"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/website/","section":"Tags","summary":"","title":"Website","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/cactus/","section":"Tags","summary":"","title":"Cactus","type":"tags"},{"content":"Comment systems like Disqus are convenient, but they come with the added burden of tracking, advertising, and external dependencies. Cactus Comments works differently: comments are stored directly in Matrix rooms on your own home server.\nIn the previous article, I showed you how to set up Synapse using Docker and how to manage your own Matrix home server. Today, we’ll build on that: with Cactus Comments, each blog post will have its own dedicated Matrix chat room. Readers can leave comments without having to register with a third-party service, and I will have full control over my data.\nWhat is Cactus Comments? # Cactus Comments is a federated commenting system for the open web that uses the Matrix protocol as its backend. The concept is quite simple: For each blog post, a corresponding Matrix room is automatically created. Anyone who wants to leave a comment logs in using their Matrix account—this can be an account on matrix.org, my own server, or any other Matrix-hosting service. Thanks to the federation mechanism!\nThe system consists of two parts:\nCactus Appservice – a Python service that runs as a Matrix bot (here: @cactusbot) on the home server and is responsible for managing the rooms. Cactus Client is a JavaScript/Elm-based web application that is embedded within the blog to render the comment form. Prerequisites # A running Synapse home server (my guide for setting it up: Custom matrix-based home server using Synapse) Docker and Docker Compose Node.js and npm (for building the client-side code) A Hugo website Building the Cactus Client # The Cactus Client is not provided as a finished bundle file; it must be built manually. I also want to keep a local copy of it in my own Forgejo installation, rather than relying on GitLab.\nClone the repository and mirror it to Forgejo:\ngit clone https://gitlab.com/cactus-comments/cactus-client.git cd cactus-client git remote rename origin gitlab git remote add origin https://git.techlab.icu/sebastianzehner/cactus-client.git git push origin --all git push origin --tags Run the build:\nnpm install npm run build If you don’t already have your own Forgejo, you can skip the mirroring step.\nPossible error: The Elm package is corrupted # During the first attempt at building, the following error occurred for me:\n🚨 CORRUPT PACKAGE DATA I downloaded the source code for ryannhg/date-format 2.3.0 from: https://github.com/ryannhg/date-format/zipball/2.3.0/ But it looks like the hash of the archive has changed since publication. The ryannhg/date-format package has had its hash changed since it was released, which is a known issue with Elm dependencies when the package author moves the version tag at a later date. The solution is to download the package manually and place it in the correct location.\ncd ~/.elm/0.19.1/packages/ryannhg/date-format/2.3.0/ curl -L \u0026#34;https://github.com/ryannhg/date-format/zipball/2.3.0/\u0026#34; -o package.zip unzip package.zip mv ryan-haskell-date-format-b0e7928/* . rm -rf ryan-haskell-date-format-b0e7928 package.zip Then built it again—this time successfully:\n✨ Built in 3.73s. dist/cactus.js 155.95 KB dist/style.css 6.96 KB Setting up the AppService # Step 1: Generate tokens # The AppService requires two random tokens for authentication between Synapse and Cactus.\ncat /dev/urandom | tr -dc \u0026#39;a-f0-9\u0026#39; | fold -w 64 | head -n 2 The first line of the output will be as_token, and the second one will be hs_token. Make sure to note both of them carefully.\nStep 2: Create the registration file for Synapse # nvim ~/docker/synapse/files/cactus.yaml Add the following lines:\nid: \u0026#34;Cactus Comments\u0026#34; url: \u0026#34;http://cactus:5000\u0026#34; as_token: \u0026#34;YOUR_AS_TOKEN\u0026#34; hs_token: \u0026#34;YOUR_HS_TOKEN\u0026#34; sender_localpart: \u0026#34;cactusbot\u0026#34; namespaces: aliases: - exclusive: true regex: \u0026#34;#comments_.*\u0026#34; This file tells Synapse that there is an AppService named cactusbot which manages all room aliases prefixed with #comments_.\nStep 3: Add content to the homeserver.yaml file # nvim ~/docker/synapse/files/homeserver.yaml Add the following lines:\napp_service_config_files: - \u0026#34;/data/cactus.yaml\u0026#34; allow_guest_access: true use_appservice_legacy_authorization: true enable_authenticated_media: false public_baseurl: \u0026#34;https://matrix.your-domain.com\u0026#34; Important: The /data/cactus.yaml path is the path inside the Synapse container. In my case, ~/docker/synapse/files/ is mounted as /data.\nSecurity Note: The settings allow_guest_access: true, use_appservice_legacy_authorization: true, and enable_authenticated_media: false are requirements of the Cactus Appservice and they relax certain security measures implemented by Synapse. To avoid this, the Cactus client would need to be extended accordingly; however, this is beyond the scope of this documentation.\nStep 4: Setting environment variables for Cactus # nvim ~/docker-compose/synapse/cactus.env Add the following lines:\nCACTUS_HS_TOKEN=YOUR_HS_TOKEN CACTUS_AS_TOKEN=YOUR_AS_TOKEN CACTUS_HOMESERVER_URL=http://synapse:8008 CACTUS_USER_ID=@cactusbot:matrix.your-domain.com Step 5: Expanding Docker Compose # In the existing docker-compose.yml for Synapse, I am adding the Cactus service:\ncactus: image: cactuscomments/cactus-appservice:latest container_name: cactus env_file: cactus.env restart: unless-stopped networks: - synapse Cactus is placed in the synapse network so it can reach the Synapse container directly at http://synapse:8008.\nStep 6: Start # cd ~/docker-compose/synapse docker compose down docker compose up -d synapse # wait for Synapse to become healthy docker compose up -d cactus For verification:\ndocker logs cactus --tail 50 docker logs synapse --tail 50 Registering the website with Cactus # Before Cactus can create comment sections for my blog, I need to register my website with cactusbot. This can be done directly through Element.\nOpen a new chat with @cactusbot:matrix.your-domain.com and enter the following message:\nregister \u0026lt;websitename\u0026gt; If everything is set up correctly, the bot will respond with an acknowledgment. The successful execution of the process can be seen in the container logs as follows:\nINFO in app: Registration complete INFO in app: Created site name=\u0026#39;websitename\u0026#39; owner=\u0026#39;@your_name:matrix.your-domain.com\u0026#39; INFO in app: Power level changed, replicating room=\u0026#39;#comments_websitename:matrix.your-domain.com\u0026#39; Hugo Integration # Copy the client files # cd ~/hugo/cactus-client cp dist/cactus.js ~/hugo/blog/static/ cp dist/style.css ~/hugo/blog/static/cactus.css Creating a shortcode # nvim ~/hugo/blog/layouts/shortcodes/chat.html My shortcut loads the Cactus Client and initializes the comment section. I’ve also customized it to match my Catppuccin color scheme, both for the light “Latte” and dark “Mocha” themes.\n\u0026lt;script type=\u0026#34;text/javascript\u0026#34; src=\u0026#34;/cactus.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; href=\u0026#34;/cactus.css\u0026#34; type=\u0026#34;text/css\u0026#34; /\u0026gt; \u0026lt;style\u0026gt; /* Fix avatar image distortion */ .cactus-comment-avatar img { max-width: unset; width: 40px; height: 40px; object-fit: cover; } /* Catppuccin Latte (Light) */ :root[data-theme=\u0026#34;light\u0026#34;] { --cactus-text-color: #4c4f69; --cactus-text-color--soft: #6c6f85; --cactus-background-color: transparent; --cactus-background-color--strong: #e6e9ef; --cactus-border-color: #ccd0da; --cactus-border-width: 1px; --cactus-border-radius: 0.5em; --cactus-box-shadow-color: rgba(30, 102, 245, 0.15); --cactus-button-text-color: #4c4f69; --cactus-button-color: #dce0e8; --cactus-button-color--strong: #ccd0da; --cactus-button-color--stronger: #bcc0cc; --cactus-login-form-text-color: #4c4f69; --cactus-error-color: #d20f39; } /* Catppuccin Mocha (Dark) */ :root[data-theme=\u0026#34;dark\u0026#34;] { --cactus-text-color: #cdd6f4; --cactus-text-color--soft: #a6adc8; --cactus-background-color: transparent; --cactus-background-color--strong: #313244; --cactus-border-color: #45475a; --cactus-box-shadow-color: rgba(137, 180, 250, 0.18); --cactus-button-text-color: #cdd6f4; --cactus-button-color: #45475a; --cactus-button-color--strong: #585b70; --cactus-button-color--stronger: #6c7086; --cactus-login-form-text-color: #cdd6f4; --cactus-error-color: #f38ba8; } \u0026lt;/style\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;div id=\u0026#34;comment-section\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;script\u0026gt; initComments({ node: document.getElementById(\u0026#34;comment-section\u0026#34;), defaultHomeserverUrl: \u0026#34;https://matrix.your-domain.com\u0026#34;, serverName: \u0026#34;matrix.your-domain.com\u0026#34;, siteName: \u0026#34;websitename\u0026#34;, commentSectionId: \u0026#34;{{ index .Params 0 }}\u0026#34;, }); \u0026lt;/script\u0026gt; All available configuration options for initComments are described in Cactus Client Documentation.\nAdding a comment section into a blogpost # From now on, a single line will be enough to add a comment section under an article.\n{{\u0026lt; chat cactus-comments \u0026gt;}} The parameter cactus-comments is the name of the matrix space for this article. Each space automatically gets the alias #comments_websitename_cactus-comments:matrix.your-domain.com. I can use a different space name for each article or the same name for all articles; this depends on whether I want to consolidate comments per article or globally.\nChanges are being published # git add layouts/shortcodes/chat.html static/cactus.css static/cactus.js git commit -m \u0026#34;migrate Cactus Comments to self-hosted matrix.your-domain.com\u0026#34; git push origin Conclusion # What convinced me about Cactus Comments is the following: there is no external database, no third-party tracking, and no JavaScript payloads from foreign domains.\nThe comments are stored as regular matrix events in my own synapses, secured using my usual restic backup method, and are versioned and portable.\nAt the same time, anyone who has a Matrix account can comment immediately, regardless of which home server their account is located on. And those who don’t have an account yet can create one in just a few minutes by using matrix.org.\nThis is the web as it should be.\nQuestions or comments? Feel free to write to me directly via Matrix: @sebastian:matrix.techlab.icu, or just leave a comment below. It will end up right in my Matrix as well.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"18 April 2026","externalUrl":null,"permalink":"/posts/cactus-comments-blog-comments-matrix-server/","section":"Posts","summary":"How I integrated Cactus Comments – a decentralized, tracking-free commenting system built on my own Matrix server – into my Hugo blog, including the client build, appservice setup, and Catppuccin styling.","title":"Cactus Comments – Blog Comments Powered by Your Own Matrix Server","type":"posts"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/homeserver/","section":"Tags","summary":"","title":"Homeserver","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/matrix/","section":"Tags","summary":"","title":"Matrix","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/open-source/","section":"Tags","summary":"","title":"Open-Source","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/self-hosting/","section":"Tags","summary":"","title":"Self-Hosting","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/synapse/","section":"Tags","summary":"","title":"Synapse","type":"tags"},{"content":"Decentralization, data privacy, and full control over your communications—all of this is easier to achieve with Synapse and Docker than you might think.\nWhat is Matrix – and why is it different? # Most of the messaging apps we use daily – WhatsApp, Telegram, Signal, iMessage and more – have one thing in common: they are centrally organized. This means that your messages are transmitted through servers that you don’t have control over. You rely on a company to maintain the infrastructure, protect your data, and keep the service running. What happens if that company is sold, changes its privacy policies, or simply decides to shut down the service?\nMatrix solves this problem using a different approach: it’s an open, decentralized communication protocol. Similar to how email worked in the past, everyone can run their own server, and all these servers can communicate with each other – this is called federation. Your account on @you:your-server.com can easily send messages to someone on @others:matrix.org, just like you can send an email from Gmail to an Outlook address.\nThis means:\nNo dependence on a single provider. Full end-to-end encryption (optional, but recommended) Self-determination: You decide who can create an account on your server. Bridges: Matrix can be integrated with services like WhatsApp, Telegram, Discord, Signal, and many others – all within a single client. The most well-known matrix-based home server is Synapse, developed by Element (formerly New Vector). It is written in Python, has extensive documentation, and can be easily hosted independently using Docker.\nWhy host Synapse yourself? # Those who operate their own Synapse server gain several advantages at once:\nData privacy: Your messages and media are stored on your own infrastructure. However, through the federation system, space-related events can also be replicated on the servers of other participants. You retain full control over your own data and are not subject to the terms and conditions of any commercial provider.\nBackup Control: There are no longer any app-specific backup solutions. You ensure the safety of the PostgreSQL database and the media directory according to your own rules—for example, using restic.\nYour own user accounts: You can create accounts for your family, friends, or a community. The server belongs to you.\nBridges as a central hub: Instead of opening five different apps, you can integrate WhatsApp, Telegram, or Discord into your preferred Matrix client using Matrix Bridges. One client for everything.\nPersistence: As long as your server is running, your chat rooms and their histories will remain. No provider can take them away from you.\nPrerequisites # For this guide, you need:\nA Linux server (I’m using Alpine Linux) with Docker and Docker Compose. A reverse proxy - I use Traefik. A domain name - I’m using matrix.techlab.icu. Optional: A Cloudflare tunnel for external access. Installation using Docker Compose # Create a directory structure # First, we create the necessary directories:\nmkdir -p ~/docker-compose/synapse mkdir -p ~/docker/synapse mkdir -p ~/docker/synapse/files mkdir -p ~/docker/synapse/db-data nvim ~/docker-compose/synapse/docker-compose.yml This corresponds to my personal directory structure for all Docker containers: the volume data is stored in ~/docker, and the Compose configuration data is stored in ~/docker-compose. This keeps everything organized, and I regularly back up these two directories using restic. I might even write a separate article about it.\ndocker-compose.yml # Here is my productive configuration with Synapse, PostgreSQL, and traffic integration:\nservices: synapse: container_name: synapse image: docker.io/matrixdotorg/synapse:latest restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml - UID=1000 - GID=1000 volumes: - /home/user/docker/synapse/files:/data depends_on: - synapse-db networks: synapse: proxy: ipv4_address: 192.168.10.70 labels: - \u0026#34;traefik.enable=true\u0026#34; - \u0026#34;traefik.docker.network=proxy\u0026#34; # HTTP to HTTPS Redirect - \u0026#34;traefik.http.routers.synapse.entrypoints=http\u0026#34; - \u0026#34;traefik.http.routers.synapse.rule=Host(`matrix.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.middlewares.synapse-https-redirect.redirectscheme.scheme=https\u0026#34; - \u0026#34;traefik.http.routers.synapse.middlewares=synapse-https-redirect\u0026#34; # Main Secure Router for Synapse - \u0026#34;traefik.http.routers.synapse-secure.entrypoints=https\u0026#34; - \u0026#34;traefik.http.routers.synapse-secure.rule=Host(`matrix.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.routers.synapse-secure.tls=true\u0026#34; - \u0026#34;traefik.http.routers.synapse-secure.service=synapse\u0026#34; - \u0026#34;traefik.http.services.synapse.loadbalancer.server.port=8008\u0026#34; # Define middleware to block the static path - \u0026#34;traefik.http.middlewares.block-synapse-static.replacepath.path=/forbidden\u0026#34; - \u0026#34;traefik.http.routers.synapse-static.rule=Host(`matrix.techlab.icu`) \u0026amp;\u0026amp; PathPrefix(`/_matrix/static`)\u0026#34; - \u0026#34;traefik.http.routers.synapse-static.entrypoints=https\u0026#34; - \u0026#34;traefik.http.routers.synapse-static.tls=true\u0026#34; - \u0026#34;traefik.http.routers.synapse-static.middlewares=block-synapse-static\u0026#34; - \u0026#34;traefik.http.routers.synapse-static.priority=100\u0026#34; synapse-db: image: docker.io/postgres:15-alpine container_name: synapse-db restart: unless-stopped environment: - POSTGRES_USER=synapse_user - POSTGRES_PASSWORD=secure_password - POSTGRES_DB=synapse - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - /home/user/docker/synapse/db-data:/var/lib/postgresql/data networks: synapse: networks: synapse: proxy: external: true A few notes regarding the configuration:\nSynapse is assigned a fixed IP address in the proxy network, so that traffic can reliably reach it. The block-synapse-static middleware prevents /_matrix/static from being publicly accessible; only the standard welcome page is available there, which no one outside needs. The path is redirected internally, resulting in a 404 error. PostgreSQL is initialized using lc-collate=C and lc-ctype=C; this is an official requirement from Synapse for proper database operations to function correctly. Generating the configuration file # Synapse provides a generator for the initial homeserver.yaml. We start the container once in generating mode and specify our own domain name.\ndocker run -it --rm \\ --mount type=volume,src=synapse-data,dst=/data \\ -e SYNAPSE_SERVER_NAME=matrix.techlab.icu \\ -e SYNAPSE_REPORT_STATS=no \\ matrixdotorg/synapse:latest generate The container stores the generated files in a Docker volume. As the root user, we copy them to our working directory:\nsudo -i cd /var/lib/docker/volumes/synapse-data/_data/ cp * /home/user/docker/synapse/files exit cd /home/user/docker/synapse/files sudo chown user: * Modify the homeserver.yaml file # Now we open homeserver.yaml and configure the database connection. We replace the default SQLite configuration with the PostgreSQL configuration block:\ndatabase: name: psycopg2 args: user: synapse_user password: secure_password database: synapse host: synapse-db cp_min: 5 cp_max: 10 The hostname synapse-db corresponds to the container name from docker-compose.yml; Docker resolves this hostname internally.\nStart the server # cd ~/docker-compose/synapse docker compose up -d After starting, the following message should appear under https://matrix.techlab.icu:\nIt works! Synapse is running Your Synapse server is listening on this port and is ready for messages. To use this server you\u0026#39;ll need a Matrix client. Welcome to the Matrix universe :) External access via Cloudflare Tunnel # To ensure that the server can be accessed from outside the home network as well, I set up a Cloudflare Tunnel. A public hostname is created within this setup.\nHostname: matrix Domain: techlab.icu Service Type: https URL: matrix.techlab.icu Important: The service type https ensures that the connection from Cloudflare’s Edge to the target server (Traefik) remains completely encrypted. Internally, Pi-hole resolves the DNS query matrix.techlab.icu to obtain the IP address of the Traefik server.\nActivate the Federation # Matrix relies on the ability for different servers to communicate with each other seamlessly. In order for my server to be able to communicate with matrix.org and other servers, the Federation feature must be enabled. By default, Synapse uses port 8448 for this purpose; however, I am redirecting communications to port 443 instead, as this is the port already used by the Cloudflare tunnel.\nInside the homeserver.yaml:\n# allow room access over federation matrix_synapse_allow_public_rooms_over_federation: true # enable federation on port 443 serve_server_wellknown: true The status can be checked using Matrix Federation Tester. A successful report looks like this:\nGot 4 connection reports. Homeserver version: Synapse 1.150.0 [IPv4-Address]:443 ✓ Success [IPv4-Address]:443 ✓ Success [IPv6-Address]:443 ✓ Success [IPv6-Address]:443 ✓ Success Practical note: Even after the Federation Tester shows all green indicators, it may still take a while before communication with external servers becomes reliable. A bit of patience is required, but after a few minutes, everything should work smoothly.\nCreate an Administrator Account # We create the first user, who will also act as the administrator, directly within the running container.\ndocker exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml The command interactively asks for the username, password, and whether the account should have admin privileges.\nMatrix Clients # Element Web \u0026amp; Desktop # The most well-known Matrix client is Element. It is available as a web app at app.element.io, as well as a desktop app for macOS, Windows, and Linux.\nThe first time you log in to your own server, you need to manually set the server URL to your own domain. On macOS, it’s possible that the client will only work fully after the operating system performs a security check. macOS will ask whether the app is allowed to access the local network. Please grant the permission and then restart the client.\nVerifying Devices # Matrix supports cross-signing for device verification. If you want to communicate securely with someone, you can verify their device. On both sides, a window appears displaying identical symbols and terms that need to be compared. If the symbols match and both parties confirm this, the other person’s device is considered trustworthy, and the communication is then end-to-end encrypted.\nSetting Up Key Recovery # During the first login, you will be prompted to set up key recovery. This step should not be skipped. As part of this process, a recovery key will be generated, which you must store securely. I have saved it in KeePassXC both as a protected entry and as a exported file.\nWithout this key, encrypted messages will be irretrievably lost after a device is lost or restarted, especially if there is no active session in place.\nIamb – Matrix in the terminal # For everyone who doesn’t want to leave their terminal: Iamb is a full-fledged matrix client with a terminal-style interface, inspired by Vim’s keybinding conventions. Those who use Neovim and Tmux will feel right at home immediately.\nBackup Strategy # Synapse requires two things to be backed up:\nThe PostgreSQL database at ~/docker/synapse/db-data/: This contains all the matrix events – messages, room history, metadata, etc.\nThe files under ~/docker/synapse/files/: configuration settings, uploaded media files, and – most importantly – the Signing Key.\nThe Signing Key is the cryptographic identifier for a server within the Matrix network. If it is lost, other servers will no longer trust that server; the entire federation will collapse, and you will need to set up the server from scratch. For this reason, I have stored it in my password manager, in addition to the backup file created by restic.\nI automatically backup the entire ~/docker/ directory using restic, ensuring that both of those critical paths are always included.\nFuture outlook: Bridges and Cactus Comments # This is just the beginning. The Matrix, with its open protocol, provides an excellent foundation for further integrations.\nBridges allow for the integration of other messaging services. If someone wants to route their WhatsApp, Telegram, or Discord communications through their own Matrix server, this can be achieved using the corresponding bridge containers. All the messages are then consolidated in a single Matrix client.\nI’m not using any Bridges right now, but I’m considering setting up an email bridge. Unfortunately, it’s not possible to run a dedicated email server in a home lab setup without a fixed IP address; without the trust of major providers, emails will quickly end up in the spam folder or be rejected altogether. That’s why I’m particularly excited about being able to regain at least some of that freedom with Matrix.\nCactus Comments uses Matrix as its backend for blog comments. For each type of blog post, there is a dedicated Matrix chat room where readers can leave comments – without the need to create an account with an external commenting system. For more information on this, see a separate article. Cactus Comments is already in use on my blog, running on my own Synapse server.\nDo you have any questions regarding your own Synapse installation? Feel free to write to me—preferably directly through Matrix. My address is @sebastian:matrix.techlab.icu; you can also leave a comment, which will be sent to my Matrix account as well.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"8 April 2026","externalUrl":null,"permalink":"/posts/self-hosting-matrix-homeserver-synapse/","section":"Posts","summary":"In this article, I set up my own Matrix homeserver using Synapse and Docker Compose. Alongside a brief introduction to the decentralized Matrix protocol, I walk through the complete installation with PostgreSQL, Traefik, and Cloudflare Tunnel.","title":"Self-Hosting Your Own Matrix Homeserver with Synapse – Take Back Control of Your Data","type":"posts"},{"content":"","date":"31 March 2026","externalUrl":null,"permalink":"/tags/dd-wrt/","section":"Tags","summary":"","title":"Dd-Wrt","type":"tags"},{"content":"","date":"31 March 2026","externalUrl":null,"permalink":"/tags/firmware/","section":"Tags","summary":"","title":"Firmware","type":"tags"},{"content":"I flashed the cheaper TP-Link TL-WR949N routers with the firmware from dd-wrt.com. The following describes the steps I had to take in order to use this firmware.\nI would have preferred to use openwrt.org as the main router, just like I did with OpenWrt One, but unfortunately this is not recommended for this router. And especially not because of OpenWrt on 4/32 devices.\nModel: TL-WR949N(BR) Version: 6.0 I mainly use these routers as access points in my workshop and the outdoor area (the “quincho”). They are configured with WPA2 and CCMP-128 (AES) – the highest level of encryption available for WPA2.\nBackground # The TL-WR949N is a Brazilian rebranded version of the TL-WR940N, with identical hardware. It does not appear on the official TP-Link international website; therefore, it does not have dedicated DD-WRT support. It is important to take into account the specific hardware version used—in my case, it is version 6.0.\nA direct attempt to use the official TL-WR940N firmware or DD-WRT through the standard web interface fails due to the use of the Error 18005 command; this is because the WR949N has a different hardware ID. However, this issue can be circumvented using a workaround.\nRequired files # File Purpose Source wr940nv6_3_20_1_up_boot(250925).bin TP-Link EU-stock firmware for the WR940N TP-Link Download Page for WR940N factory-to-ddwrt-eu.bin First installation of DD-WRT (EU) DD-WRT Router – Database (wr940n) tl-wr940ndv6-webflash.bin Upgrading DD-WRT to a more recent build DD-WRT Router – Database (wr940n) Note: The router database from DD-WRT contains outdated builds (as of 2020) and should not be used. Always refer directly to the beta folder.\nDD-WRT Beta downloads:\nDownload → Select the year/build version → tplink-tl-wr940ndv6\nProven Builds:\nBuild Date Notes Download r44715 2020-11-03 Listed in the router database Link r64210 2026-03-31 Just confirmed that it’s in the Beta folder. Link Prerequisites # LAN cable: Always use the LAN port for flashing (never the WAN port). Computer with a browser Note: This guide reflects my own experience. Flashing third-party firmware is done at your own risk; I will not be responsible for any damaged routers or other consequences. If in doubt, it’s always better to read the instructions twice before proceeding.\nStep 1 – Install the TP-Link EU-stock firmware # The current firmware version on my TL-WR949N v6 router is:\nVersão de Firmware: 3.18.1 Build 171115 Rel.43350n Versão de Hardware: WR949N v6 00000000 The WR949N device prevents the installation of foreign firmware via the web interface using the Error 18005 mechanism; however, I can bypass this restriction using this workaround in the following way.\nHow to bypass the firmware lock # To use the workaround, I enter the following lines one by one as the device’s SSID. The backticks must be included when typing them. Set the SSID and save between each line.\nOpen the web interface: http://192.168.0.1 – Login: admin / admin Wireless → SSID field → Enter the following lines one by one and save each one after completion (Atualizar). `echo \u0026#34;httpd -k\u0026#34;\u0026gt; /tmp/s` `echo \u0026#34;sleep 10\u0026#34;\u0026gt;\u0026gt; /tmp/s` `echo \u0026#34;httpd -r\u0026amp;\u0026#34;\u0026gt;\u0026gt; /tmp/s` `echo \u0026#34;sleep 10\u0026#34;\u0026gt;\u0026gt; /tmp/s` `echo \u0026#34;httpd -k\u0026#34;\u0026gt;\u0026gt; /tmp/s` `echo \u0026#34;sleep 10\u0026#34;\u0026gt;\u0026gt; /tmp/s` `echo \u0026#34;httpd -f\u0026#34;\u0026gt;\u0026gt; /tmp/s` `sh /tmp/s` After the last step (sh /tmp/s), the httpd process is restarted. The router itself does not reboot, but the web interface becomes unavailable for approximately 20–30 seconds.\nFlashing the Firmware # Open the web interface: http://192.168.0.1 – Login: admin / admin System Tools (Ferramentas de sistema) → Firmware Upgrade (Atualizar firmware) Select wr940nv6_3_20_1_up_boot(250925).bin → Upgrade (Atualizar) Wait a few minutes for the flashing process to complete, after which the router will automatically restart. Factory Reset: Hold down the reset button for 20 seconds and wait until the router restarts. The web interface can be accessed again via http://192.168.0.1. On the first attempt to log in, a new password is requested immediately; there is no longer a separate username field, only a password prompt.\nThe interface is now in English instead of Portuguese, which indicates that the EU-specific firmware is being used.\nThe firmware after the update:\nFirmware Version: 3.20.1 Build 250925 Rel.57536n (4555) Hardware Version: WR940N v6 00000000 I can now use this firmware, or I can move on to Step 2 and install DD-WRT.\nStep 2 – Initial installation of DD-WRT # After completing the first step, I can now successfully install DD-WRT via the web interface without any issues, and the Error 18005 no longer appears.\nFlashing the Firmware # Open the web interface: http://192.168.0.1 – Enter the password. System Tools → Firmware Upgrade Select the current factory-to-ddwrt-eu.bin → Upgrade Wait a few minutes for the flashing process to complete, and then the router will automatically restart. Factory Reset: Hold down the reset button for 20 seconds and wait until the router restarts. The web interface can be accessed via http://192.168.1.1. On the first visit, you will be prompted to enter a new username and password immediately. After that, the router can be configured.\nStep 3 – Upgrade to a newer DD-WRT build # The webflash.bin is intended for upgrades when DD-WRT is already installed on the router. It comes from the same build directory as the factory-to-ddwrt file.\nFlashing the Firmware # Open the web interface: http://192.168.1.1 – Enter your username and password. Administration → Firmware Upgrade tl-wr940ndv6-webflash.bin Upload → Upgrade Wait a few minutes for the flashing process to complete, after which the router will automatically restart. It is recommended to perform a factory reset: Press and hold the reset button for 20 seconds and wait until the router restarts. Back to TP-Link stock (TFTP recovery) # If DD-WRT is running on the router and you want to revert it back to the original firmware:\nPC-IP: 192.168.0.66 / 255.255.255.0 TFTP-file: wr940nv6_tp_recovery.bin (Content: TP-Link stock firmware, renamed) Important: The PC and the router must be connected through a network switch; a direct connection will not work because Windows temporarily interrupts the Ethernet connection when the router restarts, causing the TFTP request to be missed.\nProcedure:\nConnect the PC and the router via a switch. Starting a TFTP server (e.g., using tftpd64 or atftp). Select the folder that contains the renamed file. Select the interface 192.168.0.66. Turn off the router. Hold down the Reset button and turn on the router. Hold down the Reset button until the TFTP transfer starts (about 10 seconds). Wait until the transfer is complete and the router restarts. Note: The original TP-Link firmware must contain a boot header before being renamed (the file name includes up_boot). Firmware whose file name does not contain up_boot should not be used for TFTP transfers.\nConclusion # The TL-WR949N is an affordable router that can be easily configured to use with DD-WRT with a bit of patience and the right steps. The workaround involving the SSID field is somewhat unusual, but it works reliably. With the latest version of DD-WRT firmware, the router functions stably as an access point.\nDocumenting these steps was definitely worth it; next time I won’t have to start from scratch like I did today.\nHave you flashed the TL-WR949N or a similar router? Did you notice anything unusual during the process, or did you find another way to achieve your goal? I’d be interested in hearing your comments—either right here via Cactus Comments using your Matrix account, or as a guest without an account at all. This topic could also make for another great blog post.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"31 March 2026","externalUrl":null,"permalink":"/posts/installing-dd-wrt-on-the-tl-wr949n-the-complete-guide/","section":"Posts","summary":"How I flashed the Brazilian TP-Link TL-WR949N router with DD-WRT: including a workaround for the SSID issue related to Error 18005, a step-by-step guide, and information on using TFTP for recovery.","title":"Installing DD-WRT on the TL-WR949N: The complete guide","type":"posts"},{"content":"","date":"31 March 2026","externalUrl":null,"permalink":"/tags/router/","section":"Tags","summary":"","title":"Router","type":"tags"},{"content":"","date":"10 January 2026","externalUrl":null,"permalink":"/tags/llm/","section":"Tags","summary":"","title":"Llm","type":"tags"},{"content":"","date":"10 January 2026","externalUrl":null,"permalink":"/tags/ollama/","section":"Tags","summary":"","title":"Ollama","type":"tags"},{"content":"","date":"10 January 2026","externalUrl":null,"permalink":"/tags/opencode/","section":"Tags","summary":"","title":"Opencode","type":"tags"},{"content":"The Ollama hat emerged as a popular solution for running Large Language Models (LLMs) locally on one’s own hardware. However, many users encounter mysterious issues when trying to integrate it with tools like OpenCode.\n“Tool Calls” don’t work properly, agents lose context, and code generation falls far short of expectations. The cause is usually not the model itself, but a frequently overlooked setting: the “Context Window”.\nThe Context Window Problem: Why 4096 Tokens Aren’t Enough # Ollama typically uses a Context Window of only 4096 tokens by default, regardless of the theoretical size of the model. This value may be sufficient for simple chat interactions, but it becomes a bottleneck when more complex tasks are at hand.\nFor demanding applications such as:\nCode generation and refactoring A tool that invokes multiple functions Agent-based workflows OpenCode Integration Is this standard practically always too small. The model simply cannot make use of its theoretical context of 32k, 128k, or even 256k tokens, because Ollama artificially limits it.\nI was wondering why OpenCode wouldn’t work on my computer with various local models, so I decided to investigate the issue.\nNow I understand why I didn’t succeed at first, and why the Large Language Model (LLM) didn’t behave in the way I desired. I was almost about to give up, but now I’ve found the solution.\nUnderstanding and configuring the Context Window # The context is controlled through the parameter num_ctx. With a simple command, it is possible to check which value is currently active.\nollama ps The output clearly demonstrates the problem.\nNAME ID SIZE PROCESSOR CONTEXT UNTIL qwen2.5-coder:7b dae161e27b0e 4.9 GB 100% GPU 4096 4 minutes from now Despite having high-performance hardware and a model that theoretically could handle much more data, only 4096 tokens are available.\nSolution 1: Providing a global context through systemd # The most elegant solution for ensuring a consistent setup is to set an environment variable at the system level. This way, all models will be automatically loaded with the desired context.\nsudo systemctl edit ollama.service Alternatively, the override file can be edited directly.\nsudo nvim /etc/systemd/system/ollama.service.d/override.conf The following entry increases the standard context to 16384 tokens:\n[Service] Environment=\u0026#34;OLLAMA_HOST=0.0.0.0\u0026#34; Environment=\u0026#34;OLLAMA_CONTEXT_LENGTH=16384\u0026#34; After the daemon is reloaded and the service restarted, the change takes effect.\nsudo systemctl daemon-reload sudo systemctl restart ollama Verification using another model demonstrates the success.\nNAME ID SIZE PROCESSOR CONTEXT UNTIL qwen3-coder:30b 06c1097efce0 20 GB 100% GPU 16384 4 minutes from now Solution 2: Manually adjusting the context in the chat # For testing or occasional use, the context can also be set directly in the Ollama chat:\nollama run qwen3:32b In the chat:\n/set parameter num_ctx 12288 Tip: Using /save qwen3-12k:32b, you can even save a new variant of the model with this context. It will be available the next time ollama list is executed.\nSolution 3: Model files – the professional approach # The most sustainable solution is to use model files. They only take a few seconds to create, require almost no storage space, and perfectly document the configuration.\nSample model file for Ministral-3 with a 64k context:\nFROM ministral-3:14b PARAMETER num_ctx 65536 Create:\nollama create ministral-3-64k:14b -f ministral-3-64k-14b.Modelfile The result:\nNAME ID SIZE PROCESSOR CONTEXT UNTIL ministral-3-64k:14b e1befb46cf0d 20 GB 100% GPU 65536 4 minutes from now Hardware limitations: What’s possible with an RTX 4090? # A higher level of performance (or “higher context”) is not an unlimited feature; rather, it is determined by the available hardware budget. The GPU determines what is actually feasible to use.\nIn my tests with an RTX 4090 (24 GB of VRAM), the following optimal values were obtained:\nModel More relevant context Maximum Context VRAM usage qwen2.5-coder:7b 32k 32k 8.2 GB ministral-3:14b 64k 256k 20 GB qwen3-coder:30b 32k 256k 22 GB deepseek-r1:32b 10k 128k 22 GB gpt-oss:20b 128k 128k 17 GB A too high value for num_ctx results in:\nMemory-out-of-limit errors Extremely slow responses Unstable tool calling Using a CPU/GPU combination instead of relying solely on the GPU Example of an overloaded model:\nNAME ID SIZE PROCESSOR CONTEXT UNTIL qwen3:32b 030ee887880f 29 GB 22%/78% CPU/GPU 32768 4 minutes from now The percentage value related to the CPU indicates that the GPU is under heavy load; as a result, there are performance declines.\nPractical test: Which models work with OpenCode? # After extensive testing, three models emerged as particularly suitable.\nqwen3-coder:30b – The coding expert # With a context window size of 32k, this model performs optimally on the RTX 4090. The use of the relevant tools is reliable, and the speed is impressive. The resulting output closely resembles the feel of Claude Code’s experience, although Claude itself is still a unique and separate entity in its own right.\ndevstral-small-2:24b – The reliable all-rounder # Based on a provided template, this model creates files and adjusts them according to the specified requirements. Occasionally, there are minor issues with context handling, but overall, it performs stably with up to 32k contexts.\ngpt-oss:20b – The champion of analysis # The real highlight is the 128k of context available without any performance impacts. This makes it perfect for code reviews, documentation analysis, and large-scale projects. Even if some tool calls fail, the model will correct itself automatically.\nThe only downside is that Markdown tables were not rendered optimally in OpenCode; however, I have found a solution using this plugin.\nqwen2.5-coder:7b – Not recommended # Despite having a context of 32k tokens: With only 7 billion parameters, the model is too small to be used as a reliable tool for making function calls within OpenCode.\nPractical recommendation for RTX 4090 users # Based on my own tests, my current recommendation for these models is:\nUse Case Model Context Coding / Tools Qwen3-Coder-30B 16–32k Review/Analysis GPT-OSS-20B 64–128k Long documents/knowledge bases… Ministral-14B 32–64k Model file management: Organization is everything # It’s worthwhile to have a dedicated directory for model files:\n/mnt/sumpf/ai/opencode/ollama/modelfiles/ ├── gpt-oss-64k-20b.Modelfile ├── gpt-oss-128k-20b.Modelfile └── ministral-3-64k-14b.Modelfile So it remains understandable why a particular model was configured in a certain way—even months later.\nMaintenance and updates # When updating the system in Arch Linux, the overrides in the override.conf section are automatically preserved. After making manual changes, it’s sufficient to simply:\nsudo systemctl daemon-reload sudo systemctl restart ollama Conclusion: Context is not a feature, but a budget # The “Context Window” is the invisible “neck” of many Ollama setups. Anyone who wants to use OpenCode or similar tools must definitely modify the default value of 4096 tokens.\nThe three approaches for solving this issue – using global environment variables, chat commands, or model files – provide the appropriate level of flexibility for each scenario. It’s crucial to understand that a higher level of “context” is not an unlimited feature; rather, it must always be considered in the context of the available hardware.\nWith the right settings, Ollama can become a powerful local AI infrastructure capable of reliably supporting even demanding workflows.\nI can now also allow one of the mentioned large language models (LLMs) to access my local wiki, so that it can be filled with relevant context data, which can then be directly used for further processing. It’s really amazing what’s possible these days. I learn something new every day, and it’s a lot of fun.\nWhat experiences do you have with Ollama and OpenCode? Which model works best for you? Please share your recommendations and setup tips in the comments; I’m really interested in your feedback!\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"10 January 2026","externalUrl":null,"permalink":"/posts/ollama-context-window-optimization-opencode/","section":"Posts","summary":"The Context Window is the “invisible bottleneck” in many Ollama setups. Here are three approaches to optimize its performance, practical tests using various models, and specific recommendations for successfully integrating OpenCode with LLMs.","title":"Optimizing the Ollama Context Window: The key to a successful integration of OpenCode","type":"posts"},{"content":"","date":"10 January 2026","externalUrl":null,"permalink":"/tags/terminal/","section":"Tags","summary":"","title":"Terminal","type":"tags"},{"content":"Who doesn’t know this? Sometimes, a single blog post simply isn’t enough to cover a topic in depth. You might decide to write a series of articles, but how are readers supposed to keep track of them? Although Hugo comes with categories and tags by default, it doesn’t offer a built-in way to display the series visually, showing their progression or order.\nRecently, I solved this problem for my blog and implemented a series functionality. In this guide, I’ll show you how you can easily do the same using Hugo’s built-in tools.\nWhy a “series” function? # When a reader comes across a part of a series, they usually want to know three things:\nThat this post is part of a larger series. Which part is he currently reading (for example, Part 2 out of 5)? Where are the links to the other parts of the series? Step 1: Register the series with Hugo # First, we need to inform Hugo that in addition to tags and categories, there are now also “series”. Please modify your hugo.yaml as follows:\ntaxonomies: categories: categories tags: tags series: series Step 2: Create the partial # We will create a “partial” – that is, a reusable code snippet. First, generate the file layouts/partials/series.html and insert the following code into it:\n{{ $series := .GetTerms \u0026#34;series\u0026#34; }} {{ if $series }} {{ range $series }} {{ $posts := .Pages.ByDate }} {{ $count := len $posts }} \u0026lt;aside class=\u0026#34;series-container\u0026#34;\u0026gt; \u0026lt;details {{ if lt $count 5 }}open{{ end }}\u0026gt; \u0026lt;summary class=\u0026#34;series-summary\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;series-header-text\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;series-title\u0026#34;\u0026gt; {{ i18n \u0026#34;series_title\u0026#34; }}: {{ .Name }} \u0026lt;/span\u0026gt; \u0026lt;span class=\u0026#34;series-count\u0026#34;\u0026gt; {{ i18n \u0026#34;series_parts_total\u0026#34; $count }} \u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/summary\u0026gt; \u0026lt;ul class=\u0026#34;series-list\u0026#34;\u0026gt; {{ range $num, $post := $posts }} {{ $isCurrent := eq $post.Permalink $.Page.Permalink }} \u0026lt;li class=\u0026#34;series-item\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;series-part-label\u0026#34;\u0026gt; {{ i18n \u0026#34;series_part\u0026#34; }} {{ add $num 1 }} \u0026lt;/span\u0026gt; {{ if $isCurrent }} \u0026lt;span class=\u0026#34;series-item-current\u0026#34; aria-current=\u0026#34;page\u0026#34;\u0026gt; {{ i18n \u0026#34;series_current\u0026#34; }} \u0026lt;/span\u0026gt; {{ else }} \u0026lt;a href=\u0026#34;{{ $post.Permalink }}\u0026#34; class=\u0026#34;series-item-link\u0026#34;\u0026gt; {{ .Params.series_title | default .Title }} \u0026lt;/a\u0026gt; {{ end }} \u0026lt;/li\u0026gt; {{ end }} \u0026lt;/ul\u0026gt; \u0026lt;/details\u0026gt; \u0026lt;/aside\u0026gt; {{ end }} {{ end }} The code in detail:\nWe start with .GetTerms \u0026quot;series\u0026quot;: This command accesses the taxonomy. If an article is assigned to multiple series, the code will generate a separate box for each series thanks to the subsequent range loop.\nThe sorting (.Pages.ByDate): By default, Hugo often displays pages in order based on their weight or date, in descending order. With .ByDate, we ensure that the series is listed logically from beginning to end (Part 1, Part 2, Part 3, etc.).\nDynamic status of the box: This is a nice convenience feature. If the series is short (less than 5 episodes), the box remains open. For very long series, the box folds shut to prevent interrupting the reading experience.\n\u0026lt;details {{ if lt $count 5 }}open{{ end }}\u0026gt;\u0026lt;/details\u0026gt; Automated numbering: We don’t need to manually enter the part number in the front matter. Hugo uses the index of the loop (which starts at 0) and simply calculates + 1. {{ range $num, $post := $posts }} ... {{ add $num 1 }} Language with i18n: To ensure that texts (such as “Part 1”) work in different languages, we use Hugo’s internationalization functionality.\nFlexible title handling: Here, we use a pipe (|) to determine how the title should be generated. If an article contains a special series_title (for example, a shorter title used for the list), that title will be used. If not, Hugo will automatically resort to the regular .Title.\n{{ .Params.series_title | default .Title }} Logic for the current post: The code checks whether the link is in the list of the current post ($isCurrent). If it is, the link is highlighted and becomes non-clickable. Step 3: Integration into the template # In order for the box to also be displayed, you need to insert that code snippet into your single-post template (usually it’s somewhere around layouts/_default/single.html). I placed it right before the content.\n{{ partial \u0026#34;series.html\u0026#34; . }} \u0026lt;div class=\u0026#34;post-content\u0026#34;\u0026gt;{{ .Content }}\u0026lt;/div\u0026gt; Step 4: Language files and styling # To ensure that the terms are translated correctly, add the following content to your i18n files in the respective languages:\n- id: series_part translation: \u0026#34;Teil\u0026#34; - id: series_title translation: \u0026#34;Dieser Artikel ist Teil der Serie\u0026#34; - id: series_current translation: \u0026#34;Aktueller Beitrag\u0026#34; - id: series_parts_total translation: one: \u0026#34;Teil insgesamt\u0026#34; other: \u0026#34;{{ .Count }} Teile insgesamt\u0026#34; Don’t forget to add some styling to your post-single.css as well, so that the box looks compatible with your blog’s design (for example, by adjusting margins, using a frame, or setting the background color).\nApplication in the blog post (frontmatter) # To assign a post to a series, you just need to add the frontmatter information to your article.\nseries: - Roadtrip Spanien und Portugal # Optional shorter title for the list series_title: Camping mit dem Wohnmobil durch Spanien und Portugal Looking ahead: What’s next? # I directly used that function to reorganize my four older posts about the road trip through Spain and Portugal:. Please take a look at it!\nThe actual reason for this renovation is another project that is about to start: a new, in-depth series on the topic of “freedom in email communication”.\nThe discussion will focus on whether and how one can break away from large providers, as well as what alternatives exist to hosting everything locally in one’s own home lab. The topic will be approached not only from a technical perspective but also with a bit of philosophical insight. Have we already lost our freedom when it comes to using email services provided by these companies?\nThanks to the new series feature, I hope you’ll always be able to keep track of everything! You can find all my series from now on under Series; this link is also available on Overview Page.\nWhat do you think? Do you also use series to create content for your blogs, or do you find the traditional “tag cloud” of posts sufficient? Feel free to let me know in the comments!\nI look forward to your feedback!\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"5 January 2026","externalUrl":null,"permalink":"/posts/hugo-series-function-multi-part-posts/","section":"Posts","summary":"In line with my planned blog series, I have integrated a series functionality into Hugo. In this tutorial, I will show you how to create multi-part posts with automatic numbering and navigation.","title":"Hugo: A series functionality for multi-part blog posts","type":"posts"},{"content":"","date":"5 January 2026","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":"","date":"17 December 2025","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","date":"17 December 2025","externalUrl":null,"permalink":"/tags/claude/","section":"Tags","summary":"","title":"Claude","type":"tags"},{"content":"As a blogger with a multilingual blog, you face a constant challenge: every new article needs to be translated into several languages. Manual translations are time-consuming and expensive, while automated tools often ruin the carefully formatted Markdown structure. What to do?\nThat’s exactly the problem I faced when I started publishing my blog in German, English, and Spanish. The solution? An intelligent Markdown translator that preserves the structure of the text and provides high-quality translations.\nThe creation of md-translator # md-translator is a Python-based tool that translates Markdown files using artificial intelligence (AI), without altering their formatting in the process. What makes it special is its use of Tencent’s Hunyuan-MT-7B model—a specialized translation model with 7 billion parameters that currently supports 38 languages.\nThe solution was built step by step and continuously refined. At first, the goal was simple: to translate a Markdown file. However, the challenges soon became apparent.\nThe code blocks have been translated (horribly!). The links broke down into their individual components. The tables lost their structure. The “Front Matter” section has been completely messed up. The URL paths did not match the structure of the multilingual blog. Each of these issues led to the development of a new feature, the fixing of a bug, or some other improvement. The result is a robust tool that is now available in version 1.2.3.\nDevelopment using Claude Code # The md-translator wasn’t developed on its own; I used Claude Code, an AI-based coding assistant from Anthropics, in the terminal. This collaboration between human and AI was the key to its success.\nThe development process # The development process was iterative and took several days to complete.\nInitial Concept: I defined the requirements: a Markdown translator that preserves the structure of the text. Prototyping: Claude Code wrote the first version of the tool, which included the basic logic for parsing Markdown content. Testing \u0026amp; Iteration: I tested using actual blog articles, identified issues, and Claude Code implemented the necessary fixes. Feature Expansion: Every new problem led to discussions about the best way to solve it. What impressed me was that Claude Code not only understood the code itself but also the context in which it was used. When I said “the table formatting is broken,” he would analyze the problem, suggest a solution, and implement it—taking into account all possible edge cases as well.\nThe challenges # Not everything worked on the first try. The bold/italic formatting was a perfect example of the limitations involved.\nWe tried several approaches: marker systems, normalization, and XML tags. Every approach worked to some extent, but not consistently. In the end, we all agreed together that the quality of the translation is more important than having the formatting perfect. This pragmatic decision-making process—combining AI suggestions with human judgment—was truly valuable.\nWhat worked well # Working with Claude Code had clear advantages:\nSpeed: Features that would have taken hours to develop were implemented in just minutes. Code Quality: Clean, well-structured Python code with docstrings. Problem-solving: Alternative solutions were immediately proposed. Iterative debugging: Errors were quickly identified and fixed. The human factor # Despite the AI assistance, my role was still crucial:\nGoal: What capabilities should this tool have? Testing: Does it actually work in practice? Prioritization: Which features are important, and which are not? Decisions: Should the bold/italic formatting be removed, or should a more complex solution be adopted? Claude Code is a powerful tool, but it’s not an autopilot. The best results are achieved through the collaboration between human expertise and AI capabilities.\nHow does md-translator work? # Intelligent segmentation # The translator doesn’t simply convert Markdown files into plain text; it understands their structure as well.\nFront Matter: The YAML metadata is translated selectively (only the title, description, etc.). Headers: The headings are translated, and their hierarchy is preserved. Code blocks: They are completely protected and not translated. Tables: Translated cell by cell, while maintaining the overall structure intact. Links: The text will be translated, while the URL remains protected. Images: The alt-text is translated, while the image path remains unchanged. Element Protection # Certain elements must never be translated.\nInline code such as variable_name HTML tags such as \u0026lt;div\u0026gt; or \u0026lt;span\u0026gt; URLs in links and images Footnote references such as [^1] These elements are replaced with placeholders before the translation and then restored afterward. The Large Language Model (LLM) never sees them.\nIntelligent CLI # The command-line interface is intentionally kept simple.\npython md-translator.py artikel.de.md -l en es The tool automatically recognizes:\nThe source language, as indicated in the file name (artikel.de.md → German): Automatically generates output files (artikel.en.md, artikel.es.md). Loads the model only once for all translations Special Features # URL rewriting for multilingual blogs # A typical problem with multilingual blogs: German articles are stored under /de/posts/my-article, English articles directly under /posts/my-article, and Spanish articles under /es/posts/my-article. The internal links need to be adjusted accordingly.\nThe md-translator handles this elegantly with an optional configuration file:\nurl_rewriting: enabled: true patterns: de: /de en: \u0026#34;\u0026#34; es: /es A link such as /de/posts/my-article will be automatically converted to /posts/my-article (in English) or /es/posts/my-article (in Spanish).\nTranslation Metadata # Each translated file automatically receives metadata in the Front Matter section.\ntranslation: tool: md-translator version: 1.2.3 from: de to: en date: 2024-12-16 time: \u0026#34;14:23:45\u0026#34; This makes it understandable when and how a file was translated. Very useful for large blogs with hundreds of articles.\nAutomatic display in Hugo # The translation metadata is not just documentation; it’s also practically useful. My Hugo blog automatically analyzes this data and displays it at the bottom of each post (in the “footer” section).\nHugo template customization:\nThe Hugo template checks whether the translation field is present in the front matter. If it is, a notice is generated automatically.\n# singles.html {{ if .Params.translation }} \u0026lt;div class=\u0026#34;translation-note-wrapper\u0026#34;\u0026gt; {{ partial \u0026#34;translation-note.html\u0026#34; . }} \u0026lt;/div\u0026gt; {{- end }} # translation-note.html {{ with .Params.translation }} {{ $from := i18n (printf \u0026#34;lang_%s\u0026#34; .from) }} {{ $to := i18n (printf \u0026#34;lang_%s\u0026#34; .to) }} {{ $toolPage := site.GetPage \u0026#34;posts/md-translator\u0026#34; }} {{ $toolName := .tool }} {{ if $toolPage }} {{ $toolName = printf `\u0026lt;a href=\u0026#34;%s\u0026#34;\u0026gt;%s\u0026lt;/a\u0026gt;` $toolPage.RelPermalink .tool | safeHTML }} {{ end }} {{ i18n \u0026#34;translation_note\u0026#34; (dict \u0026#34;From\u0026#34; $from \u0026#34;To\u0026#34; $to \u0026#34;Tool\u0026#34; $toolName \u0026#34;Version\u0026#34; .version ) | safeHTML }} {{ end }} For the reader, this looks like this:\nThis article was translated from German to English using md-translator v1.2.3.\nIn this way, the reader immediately and clearly understands the information.\n✅ That he is reading a translation. ✅ Which tool was used? ✅ From which language into which language was translated ✅ When the translation was created This is especially useful for articles that are updated regularly. When the original content is updated, you can translate it again later on, and the date will indicate which version of the translation is currently in use.\nPunctuation normalization # A common issue is that the LLM sometimes adds punctuation marks where they shouldn’t be. For example, Über mich becomes About me. – with an unwanted period at the end.\nThe md-translator checks the original text: if no punctuation mark is present at the end, none are added to the translation either. Simple logic, but with a big impact.\nTechnical Details # GPU Optimization # The Hunyuan-MT-7B model has 7 billion parameters. To process all of them with full precision (FP32), it would require approximately 28 GB of VRAM – which is more than most graphics cards can handle.\nThe solution: FP16 (half-precision). This reduces memory usage to approximately 14 GB while doubling the performance. On an RTX 4090, the conversion process runs smoothly and effortlessly.\nPost-processing # After the translation, a few more things need to be done:\nCorrection of Markdown syntax: The spaces between ] and ( in the links are being removed. Image syntax restoration: Missing ! sections in front of images are being added. Placeholder restoration: Protected elements are restored to their original state. Link-Translation: Texts from links are translated separately. The result: perfectly formatted Markdown files that look as if they were written by hand.\nLessons Learned # The development of md-translator was quite informative. Here are some of the key insights:\nWhat worked:\nClear placeholders like __INLINECODE0__ are compatible with large language models (LLMs). Segmenting based on the Markdown structure ensures that the context is properly maintained. FP16 optimization is a game-changer when it comes to performance. The YAML-based configuration makes the tool flexible. What didn’t work:\nThe bold/italic formatting (* and **) cannot be reliably protected. The LLM treats these markers in a inconsistent manner. Sometimes they are preserved, sometimes they are not. Manual post-processing is required in this case. Worked surprisingly well:\nTable translation, cell by cell: URL rewriting for multilingual structures Translation of the link-text without changing the URL: Practical usefulness # Since using md-translator, my workflow has been significantly simplified.\nBefore:\nWriting articles in German Copy to Translation Tool Have it translated Manually repairing Markdown formatting issues Check and correct the links and images Manually translating the Front Matter section Adjust the URLs to match the target language Repetition for each language Later on:\npython md-translator.py artikel.de.md -l en es Time for a 1,000-word article:\nPreviously: ~60–90 minutes (for 2 languages) Later: ~3–5 minutes (pure translation time) This saves more than 90 percent of the time!\nOpen Source and the Future # The md-translator project is open source and available on GitHub. The current version 1.2.3, is stable and ready for use in production environments.\nPlanned features for the future:\nBatch processing for entire directories Support for additional Markdown dialects Conclusion # The md-translator demonstrates how modern AI can be used to solve practical problems. It’s not a perfect tool (formatting text in bold/italic remains a challenge), but it saves a tremendous amount of time and provides high-quality translations.\nFor bloggers who publish content in multiple languages, this is a game-changer. For me personally, it has lowered the barrier to publishing articles in different languages. And that’s exactly the goal: to make knowledge accessible, regardless of the language.\nThe meta-character of this article # This article is a perfect example of modern AI-driven development and content creation:\nThe creation story:\nThe md-translator was developed using Claude Code (AI that assists with programming). This article was written using Claude Code (AI assistance was involved in the writing process). The article will be translated using md-translator (an AI tool that translates automatically). You might be reading the AI-translated version of this article. This is pure examples of “dogfooding”, while also demonstrating the possibilities of AI-driven work. From the code itself, to the article, to the translation process: AI serves as a tool, guided by human intentions and quality control measures.\nIf you read this article in English or Spanish, you will see a notice indicating that the automatic translation feature has been used at the end of the article. That’s Hugo integration in action!\nTechnical Specifications:\nLanguage: Python 3.12 Framework: PyTorch 2.5.0 with CUDA 12.4 Model: Tencent Hunyuan-MT-7B (7B parameters, FP16) Supported languages: currently 38 languages License: MIT Repository: github.com/sebastianzehner/md-translator ","date":"17 December 2025","externalUrl":null,"permalink":"/posts/md-translator/","section":"Posts","summary":"Multilingual blogs incur translation costs. Manual translations are expensive, while automated tools often damage the Markdown format. How can one still remain efficient and preserve the original format?","title":"The challenges of multilingual blogs","type":"posts"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/auswandern/","section":"Tags","summary":"","title":"Auswandern","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/comunidad-de-colonos/","section":"Tags","summary":"","title":"Comunidad De Colonos","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/el-paraiso-verde/","section":"Tags","summary":"","title":"El Paraiso Verde","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/el-para%C3%ADso-verde/","section":"Tags","summary":"","title":"El Paraíso Verde","type":"tags"},{"content":"It was a symbolic moment: When the old El Paraiso Verde sign was taken down and removed, a chapter that had shaped our shared life for many years visibly came to an end. This video of the moment shows more than just the removal of a sign – it represents a fresh start, an opportunity to learn from past mistakes, and a chance to rebuild our community on a new, honest, and transparent foundation.\nA Current Report on the Developments in Our Settlement # Those who have followed my articles know that we emigrated to Paraguay in November 2019. For six years now, my family and I have been living in the (former) settlement of El Paraiso Verde in Caazapá. We built our house here and, in 2024, finally received the title for our property – an important step that has provided legal security for the life’s work of many of us.\nI have long refrained from sharing this information publicly. The reason was that all legal steps first had to be completed to ensure that no unfounded accusations were made against others. This responsible handling of facts is precisely what distinguishes us from those who criticized and defamed. Now that the legal situation has been clarified, I would like to share these developments openly and transparently with my readers.\nBeginning of the Critical and Partially Defamatory Posts # In early 2023, critical and partially defamatory posts about our community began to circulate more frequently on social media. According to our research, their origin can be traced to a Telegram group called “Fraud in Paraguay,” started by a person named Tom S. Coincidentally, he is an administrator for the real estate agent Uwe H. in Paraguay.\nThe first major incident occurred on May 30, 2023, when a user named Mike M. posted messages in that group containing serious accusations against the founders:\nMike M. publicly accused the founders of fraud, named individuals, and threatened legal action. These accusations are not confirmed by us and are part of a smear campaign that caused great uncertainty within the community.\nDue to the highly offensive, aggressive, and in some cases threatening nature of these posts, I have decided not to publish their exact wording. Doing so would only harm readers unnecessarily and distract from an objective account of the events.\nOviedo Press published a video containing accusations against the founders and the settlement project. Since the individuals in question merely purchased a plot of land, while we have lived here for six years, these allegations do not reflect the reality we have experienced. Another video clarified the facts and refuted the claims.\nFrom that point on, the campaign escalated: insults, unfounded accusations, and targeted disinformation began to spread. Settlers who remained loyal to the founders were blocked in chats – in some cases by outsiders or competing real estate agents.\nThe names mentioned here are included solely to provide context; the descriptions are based on publicly available information and personal observations.\nThe Truth About the Founders # We remain in good contact with the founders of the project to this day. Based on everything we know, there is no evidence of fraud committed by the founders. However, legal proceedings are currently underway against the former chairman of the operating company.\nOfficial sources:\nLa Nación – Villarrica: Administrator of a company charged for the diversion of G. 19 billion Forensic Report No. 48/2025 (PDF) A Familiar Pattern # During my research, I came across the story of the Neufeld Colony, whose course shows remarkable parallels to our situation. In our case as well, a group of settlers – including a former board member – joined forces with lawyers and a newly founded association to begin agitating against the founders.\nAlthough the association’s website emphasizes anonymity, a closer technical analysis of the site structure and linked documents reveals the real names of some of the participants.\nIn the imprint, one finds the note: “Name: anonymous for security reasons, as long as the company at this location disciplines its creditors with firearms.” However, this statement is an unsubstantiated claim that in no way reflects the actual circumstances. Based on our experience, there is no indication of any such threat or use of violence.\nEvidence from Personal Experience # Some time ago, I published several videos on my YouTube channel in which I ride my motorcycle through the surrounding area — including both leaving and returning to the settlement. These recordings were made independently of the current discussion and show everyday life on site as it truly is.\nThe videos clearly demonstrate that there is no sense of threat or tension. Interactions with the guards are friendly and respectful — people know and greet each other. This directly contradicts the unfounded claims of supposed “violence” or “disciplinary measures.”\nBy motorcycle from El Paraiso Verde to Colonia San Cosme and back By motorcycle to Caazapá for fuel, the ATM, and then to the new bridges These previously published videos therefore provide an authentic picture of the actual situation on the ground. It is therefore reasonable to assume that the opposing portrayals — both in the imprint and in various articles of the association, such as in the so-called “Follies of Therese M.” — were deliberately staged or distorted to cast the El Paraiso Verde project and its settlers in a negative light.\nEcopolis – The Questionable Renaming of the Project # At one point, a renaming of the settlement was considered, and trademark registrations were filed under the name “Ecopolis.”\nSince the land is owned by a variety of parties — including private individuals, the operating company, and a major investor — it remains unclear on what legal basis an association could even seek to pursue such a renaming.\nTrademark evidence: 1–7 Comparison with Neufeld # During my research, I also visited the website of the association Campo Nuevo Neufeld. The factual counterpositions presented by Asocia Reinland on X.com, as well as the website of the Alpha Association, made it clear to me that similar challenges have occurred in other community projects as well.\nThe documents published there convinced me: the Alpha board recognized the underlying issues and has been consistently advocating for truth and justice. Many of the mechanisms described there are disturbingly similar to what we experienced in the former El Paraiso Verde.\nLand Titles and Forensic Evidence # During the smear campaign, we gradually received our land titles in 2024 — a clear indication that the allegations of fraud were unfounded. I wrote in detail about the title issuance here.\nBy that time, the former board had already left the project, abandoning the community without resources. Despite this, we stood together, helped with the rebuilding, and gathered evidence. The forensic report confirmed that it was not the founders but the former administration who had misappropriated funds.\nJudicial Intervention and Stalemate # Shortly before the indictment, a court-appointed administrator was installed — as Wochenblatt reported. This measure rendered the founders unable to act. Since then, payments have been frozen, invoices remain unpaid, and the future of many settlers is uncertain. Observers within the community expressed concern that the operating company could face financial instability as a result of these developments.\nThe twelve shareholders who enabled this intervention are known by name, though the documentation has not been made publicly available. Some on-site observations were recorded, but without any direct assignment of blame.\nThe 13 open questions directed at the involved shareholders (listed below) are presented as ongoing research — intended to shed light on the sequence of events without making premature judgments.\nSuspicion of External Influence # There are indications and observations suggesting that certain actors may be attempting to exert influence over the settlement. Possible political support for these actions has neither been confirmed nor ruled out.\nMany residents already hold their land titles, while others do not — which could lead to uncertainty. It remains possible that the remaining plots of land could, in the future, be managed differently, similar to what has been observed in the Neufeld community.\nBetween Truth and Division # Those of us who continue to maintain daily operations do so out of conviction and, in most cases, voluntarily. Unfortunately, some of the people who offer help within the community are being isolated or criticized.\nMy goal is to present facts transparently — without creating division or defaming anyone.\nLooking Ahead # I will likely publish further articles on this topic in the future and report on new developments. My wish remains the same: clarity, justice, and peace.\nTrust has been shaken, but understanding and reconciliation could be the first steps toward a new beginning. Despite all setbacks, we continue to work on strengthening our community and preserving the values that brought us here.\nNote: This article is based on personal research, publicly available sources, and firsthand experiences. All statements have been made to the best of my knowledge but do not represent a conclusive legal assessment.\nThe events of recent times have shown how essential clear values and mutual respect are for living together in a community. Instead of allowing ourselves to be influenced by negative voices, we focus on constructive progress and cooperation. Only on this foundation can trust be rebuilt and a stable, forward-looking community emerge.\nBest regards,\nSebastian\nOpen Questions to Shareholders (Abbreviated) # “Is it merely a coincidence that the Poder was issued on September 15, 2025, while on the same day Forensic Report No. 48/2025 — documenting the withdrawals — was submitted?” “Why are certain former participants not mentioned in this Poder?” “How can the timing of an embargo against Congressman Avelino Davalos be explained?” “Why did Davalos’ attorney request shortly after the police intervention that the attorney representing the operating company withdraw from further proceedings?” “Could the newly appointed administrator have reached an agreement with Davalos?” “Why was a special police unit deployed when other legal measures would have been possible?” “Were there contacts or external influences that could explain this operation?” “Was this approach intended to exert pressure on specific parties?” “Why was a police officer involved who reportedly held a real estate mortgage?” “Could certain actors have influenced the shareholders while the shareholders themselves financed the operation?” “What motivation lies behind the agitation of former settlers and investors?” “How is it possible that civilians appeared to have been informed in advance and took advantage of the situation?” “The court order is set to last six months — who ensures that payments are maintained during and after this period?” Lack of Answers to Key Questions # As of today (October 16, 2025), I have not received any response to the questions I raised. These questions were shared both in the internal settlers’ chat and publicly under a related video that included a statement from a lawyer.\nSeveral settlers repeated my questions in the chat and also requested clarification — yet there has been no reaction from those responsible. While silence may not officially count as a response, in this context it can certainly be seen as a telling sign.\n","date":"16 October 2025","externalUrl":null,"permalink":"/posts/el-paraiso-verde-paraguay-an-update-and-in-depth-look-at-the-expat-community-project/","section":"Posts","summary":"An overview of El Paraiso Verde in Paraguay: developments within the expat community, challenges arising from social media campaigns, legal aspects, and unresolved questions concerning the management of the settlement.","title":"El Paraiso Verde Paraguay – An Update and In-Depth Look at the Expat Community Project","type":"posts"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/emigration/","section":"Tags","summary":"","title":"Emigration","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/expat-community/","section":"Tags","summary":"","title":"Expat Community","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/expatriaci%C3%B3n/","section":"Tags","summary":"","title":"Expatriación","type":"tags"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/grundst%C3%BCck/","section":"Tags","summary":"","title":"Grundstück","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/legal-security/","section":"Tags","summary":"","title":"Legal Security","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/categories/paraguay/","section":"Categories","summary":"","title":"Paraguay","type":"categories"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/property/","section":"Tags","summary":"","title":"Property","type":"tags"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/rechtssicherheit/","section":"Tags","summary":"","title":"Rechtssicherheit","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/seguridad-jur%C3%ADdica/","section":"Tags","summary":"","title":"Seguridad Jurídica","type":"tags"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/siedlergemeinschaft/","section":"Tags","summary":"","title":"Siedlergemeinschaft","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/terreno/","section":"Tags","summary":"","title":"Terreno","type":"tags"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/titel/","section":"Tags","summary":"","title":"Titel","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/title/","section":"Tags","summary":"","title":"Title","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/t%C3%ADtulo/","section":"Tags","summary":"","title":"Título","type":"tags"},{"content":"","date":"16 de October de 2025","externalUrl":null,"permalink":"/es/tags/transparencia/","section":"Tags","summary":"","title":"Transparencia","type":"tags"},{"content":"","date":"16 October 2025","externalUrl":null,"permalink":"/tags/transparency/","section":"Tags","summary":"","title":"Transparency","type":"tags"},{"content":"","date":"16. October 2025","externalUrl":null,"permalink":"/de/tags/transparenz/","section":"Tags","summary":"","title":"Transparenz","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/compose/","section":"Tags","summary":"","title":"Compose","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/container/","section":"Tags","summary":"","title":"Container","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/docker/","section":"Tags","summary":"","title":"Docker","type":"tags"},{"content":"Whether you’re running a small home network or a full-fledged homelab, Docker with Docker Compose provides a flexible and clean way to run, connect, and manage services.\nWhen I started my first Docker container a few years ago, I never imagined it would become a central foundation of my homelab. Initially, Docker was just a handy tool for quickly deploying a single service.\nToday, I run dozens of services. They are spread across four Linux systems, organized and managed with Docker Compose, and connected via their own Docker network.\nDocker has become so deeply integrated into my daily workflow that I wouldn’t want to run many of my services any other way. It makes deployments reproducible, updates controllable, and management much easier—whether on a mini-PC, a rack server, or a small virtual machine.\nInstalling Docker on Different Linux Systems # One of the reasons I enjoy using Docker so much is the flexibility of installation. In my homelab, I run a variety of Linux distributions—and Docker works everywhere:\nAlpine Linux: Ideal for minimal setups, installed via apk in just a few seconds. Arch Linux: Thanks to pacman and the official Docker package, installation is quick and straightforward. Debian / Ubuntu: Using Docker’s repository, I can get the latest versions directly via apt. Additionally, I install Docker Compose to manage all systems with the same syntax.\nNote: In my examples on Alpine Linux, I use the command doas (similar to sudo) because Alpine doesn’t include sudo by default. On all other systems, I use sudo.\nAlpine Linux # doas apk add docker docker-compose Enable the Docker service to start automatically on boot and add your user to the docker group:\ndoas rc-update add docker default doas /etc/init.d/docker start doas addgroup $USER docker Arch Linux # sudo pacman -S docker docker-compose Debian / Ubuntu # # Add Docker\u0026#39;s official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \\ \u0026#34;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\ $(. /etc/os-release \u0026amp;\u0026amp; echo \u0026#34;$VERSION_CODENAME\u0026#34;) stable\u0026#34; | \\ sudo tee /etc/apt/sources.list.d/docker.list \u0026gt; /dev/null sudo apt-get update # Install the Docker packages sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin On Arch Linux and Ubuntu, the Docker service starts automatically, but you can manually start it with:\nsudo systemctl start docker You should also add your user to the docker group:\nsudo usermod -aG docker $USER After installation, you can test if everything worked with:\ndocker info docker ps Data Organization and Volumes # One of my core principles in the homelab: separate configuration and data from the container. I structure my volumes clearly by service, for example:\n# Configuration ~/docker-compose/ ├── traefik/ ├── komodo/ ├── jellyfin/ ├── frigate/ # Data and volumes ~/docker/ ├── traefik/ ├── komodo/ ├── jellyfin/ ├── frigate/ This way, I can not only create backups quickly, but also move or redeploy services without losing any data.\nI plan to write a separate article about backups, in which Restic will play the main role.\nDocker Networking - The Invisible Backbone # One of the biggest game-changers for me was Docker networking.\nInstead of having each service randomly floating in the network, I created a dedicated internal network for my containers. This allows services to communicate directly with each other without exposing unnecessary ports to the outside world.\nIn combination with Traefik (more on that in the next article), I can easily reach any service via a subdomain - whether it’s komodo.mydomain.com or jellyfin.mydomain.com.\nFor me, this means no more remembering random port numbers and a clean, centralized routing setup.\nSetting up Macvlan or IPvlan for Docker # I ultimately chose IPvlan to build my Docker network. I’ll cover more details in the Traefik blog post, but here are the commands to create the proxy network:\nsudo docker network create -d ipvlan --subnet 192.168.x.x/24 --gateway 192.168.x.x -o parent=enp1s0f0 proxy Find the name of your server’s network interface with:\nip address show The network interface of the sumpfgeist.lan server is called enp1s0f0, which I used for configuring the Docker IPvlan.\nImportant note when using this setup:\nI assign IP addresses for Docker containers manually in the docker-compose.yaml files to avoid IP conflicts, because otherwise Docker would assign IPs automatically without considering my DHCP server.\nHere’s an example of a simple Meshtastic web application with a manually assigned IP address and Traefik reverse proxy labels using the external proxy IPvlan network:\nservices: meshtastic-web: image: ghcr.io/meshtastic/web container_name: meshtastic restart: unless-stopped networks: proxy: ipv4_address: 192.168.x.x labels: - \u0026#34;traefik.enable=true\u0026#34; - \u0026#34;traefik.http.routers.meshtastic.entrypoints=http\u0026#34; - \u0026#34;traefik.http.routers.meshtastic.rule=Host(`meshtastic.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.middlewares.meshtastic-https-redirect.redirectscheme.scheme=https\u0026#34; - \u0026#34;traefik.http.routers.meshtastic.middlewares=meshtastic-https-redirect\u0026#34; - \u0026#34;traefik.http.routers.meshtastic-secure.entrypoints=https\u0026#34; - \u0026#34;traefik.http.routers.meshtastic-secure.rule=Host(`meshtastic.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.routers.meshtastic-secure.tls=true\u0026#34; - \u0026#34;traefik.http.routers.meshtastic-secure.service=meshtastic\u0026#34; - \u0026#34;traefik.http.services.meshtastic.loadbalancer.server.port=8080\u0026#34; - \u0026#34;traefik.docker.network=proxy\u0026#34; networks: proxy: external: true I also set up the Docker network on other servers, such as eq14.lan running Alpine Linux:\ndoas docker network create -d ipvlan --subnet 192.168.x.x/24 --gateway 192.168.x.x -o parent=eth0 proxy Why I Use IPvlan Instead of Macvlan # One of the key reasons was network compatibility:\nOnly one MAC address per physical interface - with Macvlan, each container gets its own MAC address. This can cause issues with some switches, routers, or especially consumer devices, which may not handle multiple MACs on a single port correctly. Simpler Layer-2 handling - IPvlan appears as a single interface to the network and distributes IP addresses internally, reducing the risk of broadcast or ARP problems. Better performance in some scenarios - IPvlan bypasses the virtual network driver layer that can slow down Macvlan, making it more efficient when running many containers. More compatible with firewalls and VLANs - some security or management systems behave more reliably when only one MAC address per port is used. Management: CLI Instead of Click Interfaces # Although there are tools like Komodo that give me a central overview of my four Docker hosts, almost all of my actual work happens in the terminal.\nI prefer direct control, for example, with:\ndocker ps docker compose up -d docker compose down Each service has its own docker-compose.yaml file, keeping configurations transparent and well-organized.\nI also love my terminal and deliberately prefer CLI commands (docker \u0026amp; docker compose) for scripts, automation, backups, SSH access, and more.\nWhy I Use Komodo Instead of Portainer # Many homelab users rely on Portainer to manage containers through a web interface. For my workflow, however, Komodo is perfectly sufficient - a lightweight, open-source dashboard that gives me an overview of all connected systems at a glance.\nI handle the actual management through the terminal anyway, so Komodo strikes the right balance of clarity and minimalism for me.\nAdvantages of Docker Compose in the Homelab # Quick deployment: New service? docker compose up and it’s running. Less chaos: No package conflicts or host dependencies. Portability: Containers can be easily moved to other systems. Consistency: Services behave identically on Arch, Debian, or Alpine. Outlook # In an upcoming article, I’ll go deeper into Traefik. This is my central reverse proxy that connects my Docker network to the outside world.\nExternal access is provided, among other methods, via a Cloudflare Tunnel or Twingate, both running as Docker containers in the network and certainly worthy of their own blog posts.\nI also plan to write an article about backups using Restic, to ensure no data loss occurs in the homelab. My backups run automatically via a script scheduled with Cron.\nContainer Strategy: How I Distribute Docker Services in the Homelab # To wrap up, here’s a small list of the Docker containers currently running in my homelab:\nTraefik (2x) Frigate Meshtastic Komodo Core Komodo Periphery (4x) Searxng Twingate Mixpost Cloudflare Tunnel Gluetun Linkwarden PeaNUT Baikal IT-Tools Home Assistant Synapse Gotify Stirling PDF Glance Uptime Kuma Wordpress n8n Wiki.js Jellyfin All of these containers run 24/7, distributed across several systems, for example:\nSynology NAS: Jellyfin (media server) - optimal, as the media is already stored there. EQ14 Mini-PC with two LAN ports: Frigate (NVR), separate Traefik reverse proxy - dedicated network ports and extra computing power are ideal for AI-assisted video processing. Lenovo ThinkCentre M715q: All other production services like Mixpost, Wiki.js, Searxng, Home Assistant, etc. Fourth host: Only started as needed for temporary container tests or special projects. Initially, Frigate also ran on the ThinkCentre, which worked but consumed more resources. Moving it to the EQ14 now significantly reduces load on the main server. You can read my Frigate blog post here.\nI deliberately chose not to use Docker Swarm - with my manageable number of hosts, the combination of targeted container distribution and a second Traefik proxy on the EQ14 is a simpler and more robust solution. But who knows what the future might bring?\nConclusion # For me, Docker Compose is far more than just a tool - it is the foundation of my homelab. With clear organization, clean networking, and a bit of automation, it allows me to build a robust, flexible, and easily maintainable environment that makes daily operations much easier.\nDo you use Docker or Docker Compose in your homelab? Feel free to share in the comments how you organize your containers!\nHardware Recommendations # EQ14 Mini-PC on Amazon - a compact and energy-efficient machine for Docker Lenovo ThinkCentre M715q at RAM-KÖNIG - used tiny PC as a Docker server Some of these are affiliate links. As an Amazon Associate, I earn from qualifying purchases.\nTools Used:\nDocker Traefik Komodo ","date":"15 August 2025","externalUrl":null,"permalink":"/posts/docker-compose-homelab-my-journey-connected-container-infrastructure/","section":"Posts","summary":"With clearly structured volumes, dedicated networks, and a bit of automation, my services run reliably across multiple Linux systems. They are quick to deploy, easy to update, and stable.","title":"Docker Compose in the Homelab: My Journey to a Connected Container Infrastructure","type":"posts"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/homelab/","section":"Tags","summary":"","title":"Homelab","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/ipvlan/","section":"Tags","summary":"","title":"IPvlan","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/networking/","section":"Tags","summary":"","title":"Networking","type":"tags"},{"content":"","date":"13 August 2025","externalUrl":null,"permalink":"/tags/cctv/","section":"Tags","summary":"","title":"CCTV","type":"tags"},{"content":"","date":"13 August 2025","externalUrl":null,"permalink":"/tags/coral/","section":"Tags","summary":"","title":"Coral","type":"tags"},{"content":"For my Frigate Docker container, I wanted to enable AI object detection with hardware acceleration. Therefore, I bought an M.2 Accelerator Coral Edge TPU chip with an A+E key and installed it in my home server.\nMy First Setup: Lenovo ThinkCentre # The Coral Edge TPU was recognized without issues and worked flawlessly in the free Mini PCIe slot of my Lenovo ThinkCentre (sumpfgeist.lan), which is normally used for a WiFi module. This was an important success, since the same module does not work in the WiFi slot of the Beelink EQ14, as it only supports a CNVi interface for WiFi.\nTesting the M.2 Accelerator B+M Key for the EQ14 # To also equip the EQ14 with hardware acceleration, I ordered an M.2 Accelerator Coral Edge TPU module with a B+M key.\nThe EQ14 runs Alpine Linux, for which there are no official drivers available. I had to compile the drivers myself — which I have already successfully done.\nThe installation and testing of the M.2 Accelerator B+M key on the EQ14 went smoothly. The drivers were compiled on Alpine Linux 3.22 with the current kernel and work perfectly. Some errors occurred during compilation, but I was able to fix them.\nTo document my adjustments and solutions, I have already created a fork of the driver repository, which I describe in more detail in the last section of this article.\nInstalling the Coral Edge TPU # Installing the Coral Edge TPU was straightforward. The PCIe slot in the Lenovo ThinkCentre was free, so I simply plugged in the module and restarted the server. The corresponding M.2 slot in the EQ14 was also free, allowing the card to be easily inserted and securely fastened.\nDriver Installation on Ubuntu # Installing the drivers for the Coral Edge TPU was somewhat more complex because errors occurred during the kernel module build process. I followed the official Coral guide for Ubuntu but encountered compatibility issues, which I describe below.\nPreparation: Checking for Pre-installed Drivers # First, I checked whether any pre-built Apex drivers were already present:\nuname -r # Shows the kernel version, e.g., 6.8.0-60-generic lsmod | grep apex # Checks if Apex drivers are loaded In my case, no drivers were pre-installed.\nStandard Installation Fails # Next, I added the Coral package repository and attempted to install the required packages:\necho \u0026#34;deb https://packages.cloud.google.com/apt coral-edgetpu-stable main\u0026#34; | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update sudo apt-get install gasket-dkms libedgetpu1-std This resulted in a build error during the compilation of the gasket-dkms module for my kernel (6.8.0-60-generic), because the driver source code was not compatible with my kernel version.\nError Analysis and Solution # The build log showed errors such as:\nerror: passing argument 1 of ‘class_create’ from incompatible pointer type error: too many arguments to function ‘class_create’ This is a known issue with the original gasket-dkms driver, as it was written for older kernel versions.\nSolution: Using a Fork and Building the Driver Yourself # To fix the problem, I first removed the incompatible package:\nsudo apt purge gasket-dkms Then, I cloned a patched fork that resolves the issue:\ncd ~/downloads git clone https://github.com/KyleGospo/gasket-dkms The build dependencies also need to be installed:\nsudo apt install dkms libfuse2 dh-dkms devscripts debhelper Next, I built the package using debuild:\ncd gasket-dkms debuild -us -uc -tc -b Since debhelper was not installed on my system, an error occurred which I fixed by installing debhelper.\nAfter a successful build, I installed the generated .deb package:\ncd .. sudo dpkg -i gasket-dkms_*.deb On my system, I specifically ran:\nsudo dpkg -i gasket-dkms_1.0-18_all.deb Permissions and Reboot # Because I only use the hardware inside Docker containers and my user is part of the docker group, I set appropriate access rights via a udev rule:\nsudo sh -c \u0026#34;echo \u0026#39;SUBSYSTEM==\\\u0026#34;apex\\\u0026#34;, MODE=\\\u0026#34;0660\\\u0026#34;, GROUP=\\\u0026#34;docker\\\u0026#34;\u0026#39; \u0026gt; /etc/udev/rules.d/65-apex.rules\u0026#34; Then, I rebooted the system:\nsudo reboot Verification # After rebooting, I checked whether the device was detected:\nls -alh /dev/apex* Output:\ncrw-rw---- 120,0 root docker 10 Jun 11:12 /dev/apex_0 This confirmed that the driver installation was successful and the hardware was ready for use in Docker containers like Frigate.\nDocker Compose: Using the Coral Edge TPU in the Frigate Container # To use the Coral Edge TPU inside the Frigate Docker container, we need to make the hardware accessible to the container and adjust the configuration. You can find my full Frigate blog article here.\nPassing the Device to the Container # In the Frigate docker-compose.yaml file (e.g., located at ~/docker-compose/frigate/), add the following section under services.frigate:\ndevices: - /dev/apex_0:/dev/apex_0 This passes the device /dev/apex_0 from the host system into the container.\nAdjusting the Frigate Configuration # In the Frigate configuration file config.yml (for example, under ~/docker/frigate/), add or modify the detector settings for the TPU:\ndetectors: coral1: type: edgetpu device: pci:0 This tells Frigate to use the Edge TPU detector, which communicates via the PCIe device pci:0.\nRestarting the Container # After making these changes, restart the Frigate container:\ncd ~/docker-compose/frigate docker compose down docker compose up -d Frigate will now use the Coral Edge TPU hardware acceleration for AI object detection. For more details on configuring Frigate, see here.\nDrivers on Alpine Linux # For Alpine Linux, there is a special repository with a bug fix that enables compiling the Coral Edge TPU drivers for the Alpine version and kernel I’m using.\nI cloned the repository here and adapted it for my kernel version. The detailed installation instructions can also be found there.\nTo use the Coral chip on the EQ14, I also purchased a different TPU model on a SOM board (System-On-Module) suitable for the M.2-2280-B-M-S3 (B/M Key) slot. With the self-compiled drivers, the device was then recognized by the system.\nVerifying the Hardware # You can check if the Edge TPU is recognized by running the following command:\nls -alh /dev/apex* On my system, the output looks like this:\ncrw-rw---- 120,0 root 28 Jun 20:46 /dev/apex_0 Migration to the EQ14 and Performance # I migrated my Frigate installation from the ThinkCentre (sumpfgeist.lan) to the EQ14 (eq14.lan). There, the Coral chip is recognized and AI object detection runs with an average latency of about 8 ms per frame. The chip’s temperature is around 45°C, which is within a safe range.\nKernel Update and Recompilation # In the meantime, I updated Alpine Linux on the EQ14 with a new kernel. Before rebooting, I recompiled the drivers to ensure compatibility.\nAfter the system booted, I copied and activated the current driver files, so the Coral chip was recognized again and Frigate continued to run smoothly.\nMy repository has since been updated to support the latest kernel of Alpine Linux 3.22. You can always follow my step-by-step guide on GitHub to successfully install and compile the drivers.\nConclusion # The combination of Frigate, Coral Edge TPU, and the EQ14 has now become the core of my video surveillance system. Thanks to the high detection accuracy and stable performance, I now have a solution that is reliable and future-proof.\nNext, I plan to fine-tune the detection further, integrate additional automations via Home Assistant, and gradually make my system even smarter.\nHardware Recommendations # EQ14 Mini-PC on Amazon - compact and energy-efficient machine for Frigate Coral Edge TPU on Amazon US - AI accelerator for fast and precise object detection Coral Dual Edge TPU on Amazon - powerful AI accelerator (does not fit in EQ14) Some of the above are affiliate links. As an Amazon Associate, I earn from qualifying purchases.\nTools used:\nFrigate Docker GitHub Coral Edge TPU ","date":"13 August 2025","externalUrl":null,"permalink":"/posts/coral-edge-tpu-hardware-acceleration-for-ai-object-detection/","section":"Posts","summary":"For my Frigate Docker container, I wanted to enable AI object detection with hardware acceleration. Therefore, I bought an M.2 Accelerator Coral Edge TPU chip with an A+E key and installed it in my home server.","title":"Coral Edge TPU: Hardware Acceleration for AI Object Detection","type":"posts"},{"content":"","date":"13 August 2025","externalUrl":null,"permalink":"/tags/frigate/","section":"Tags","summary":"","title":"Frigate","type":"tags"},{"content":"","date":"13 August 2025","externalUrl":null,"permalink":"/tags/nvr/","section":"Tags","summary":"","title":"NVR","type":"tags"},{"content":"","date":"13 August 2025","externalUrl":null,"permalink":"/tags/tpu/","section":"Tags","summary":"","title":"TPU","type":"tags"},{"content":"","date":"13. August 2025","externalUrl":null,"permalink":"/de/tags/video%C3%BCberwachung/","section":"Tags","summary":"","title":"Videoüberwachung","type":"tags"},{"content":"","date":"13 de August de 2025","externalUrl":null,"permalink":"/es/tags/videovigilancia/","section":"Tags","summary":"","title":"Videovigilancia","type":"tags"},{"content":"Frigate is an open-source Network Video Recorder (NVR) specifically designed for real-time AI-based object detection. It not only offers traditional video recording and playback but also automatically detects people, vehicles, animals, and other objects using machine learning.\nWhy Frigate Became the Solution for My Video Surveillance # Before moving to Paraguay in 2019, I worked in Germany planning and installing video surveillance systems. I applied that knowledge here as well: from the start, our house was equipped with a traditional surveillance setup consisting of several network cameras and an NVR recorder with a hard drive.\nHowever, some time ago I began looking for a more flexible solution. I wanted a central platform that would allow me to easily access my IP cameras. That’s when I discovered Frigate, and it quickly became clear: it can do much more than just store videos. Combined with a Coral TPU for AI object detection, it could even replace my conventional NVR entirely.\nInitial Tests on My Home Server # My first installation of Frigate was on my sumpfgeist.lan server to evaluate how well the system would perform in daily use. The original plan was to use an M.2 Dual Coral, provided it would work in the M.2 Wi-Fi slot of my Lenovo ThinkCentre. I don’t need Wi-Fi anyway, and the slot was available.\nIn practice, however, it turned out that dual-chip Corals are not supported in most M.2 Wi-Fi slots. These slots are often designed exclusively for Wi-Fi modules and do not provide a usable PCIe lane. If you’re lucky, a PCIe lane is available, allowing a Coral TPU to be installed instead of the Wi-Fi module.\nThis was the case with the ThinkCentre, where I could easily run a single-chip Coral in the M.2 Wi-Fi slot. On the EQ14 (eq14.lan), however, the slot supports Wi-Fi only, so the Coral TPU was not detected.\nThe EQ14 does have two full-size M.2 slots for NVMe drives. Since only one NVMe SSD was installed, the second slot was free — allowing me to install and use a single Coral TPU chip there via an adapter board.\nCamera Configuration and Migration to the EQ14 # At the moment, I have five IP cameras distributed across our property, all of which can be easily integrated into Frigate. More will likely be added in the future.\nAfter the initial tests went well, I migrated the Frigate installation from sumpfgeist.lan to eq14.lan. Thanks to Docker Compose, the move was almost seamless — only a small adjustment in the .env file was needed: switching from AMD GPU support to Intel, which simply meant removing one environment variable.\nTo get the Coral chip working on Alpine Linux with the EQ14, I have already implemented and documented all the necessary steps. I will cover these details in my next blog post.\nSince the existing Traefik proxy runs on a different Docker host and cannot automatically handle domain configuration from external hosts, I set up a second Traefik proxy on the EQ14. Through this, Frigate is now accessible within the internal network. For the subdomain, I only had to update the IP address in the Pi-hole DNS server.\nWith the core hardware and network setup now complete, the next step will be installing Frigate using Docker Compose - from initial preparation to the first working configuration.\nFrigate Installation # For running Frigate, I decided to use Docker Compose — not least because I’m a big fan of Docker and run multiple containers on different hosts in my homelab. The topic is broad enough that I’ll probably dedicate a separate blog post to it at some point.\nDocker Compose has the advantage of making configurations easy to adjust, back up, and migrate to other systems when needed. The official Frigate documentation also provides a solid foundation, which I adapted to my requirements — particularly the integration of multiple IP cameras.\nMy current docker-compose.yaml file looks like this:\nservices: frigate: container_name: frigate restart: unless-stopped image: ghcr.io/blakeblackshear/frigate:stable devices: #- /dev/bus/usb:/dev/bus/usb # USB Coral - /dev/apex_0:/dev/apex_0 # M.2 Coral #- /dev/apex_1:/dev/apex_1 # M.2 Dual Coral - /dev/dri/renderD128:/dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware volumes: - /etc/localtime:/etc/localtime:ro - /home/sz/docker/frigate/config.yml:/config/config.yml:ro - /mnt/frigate/clips:/media/frigate/clips - /mnt/frigate/recordings:/media/frigate/recordings - /home/sz/docker/frigate/db-data:/media/frigate - type: tmpfs # Optional 1GB memory to reduce SSD/SD card wear target: /tmp/cache tmpfs: size: 1000000000 networks: proxy: ipv4_address: 192.168.x.x ports: - \u0026#34;5000:5000\u0026#34; # Frigate Webinterface #- \u0026#34;1935:1935\u0026#34; # RTMP feeds (deprecated) ??? - \u0026#34;1984:1984\u0026#34; # go2rtc - \u0026#34;8554:8554\u0026#34; # go2rtc env_file: .env security_opt: - no-new-privileges:true labels: - \u0026#34;traefik.enable=true\u0026#34; - \u0026#34;traefik.http.routers.frigate.entrypoints=http\u0026#34; - \u0026#34;traefik.http.routers.frigate.rule=Host(`frigate.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.middlewares.frigate-https-redirect.redirectscheme.scheme=https\u0026#34; - \u0026#34;traefik.http.routers.frigate.middlewares=frigate-https-redirect\u0026#34; - \u0026#34;traefik.http.routers.frigate-secure.entrypoints=https\u0026#34; - \u0026#34;traefik.http.routers.frigate-secure.rule=Host(`frigate.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.routers.frigate-secure.tls=true\u0026#34; - \u0026#34;traefik.http.routers.frigate-secure.service=frigate\u0026#34; - \u0026#34;traefik.http.services.frigate.loadbalancer.server.port=5000\u0026#34; - \u0026#34;traefik.docker.network=proxy\u0026#34; networks: proxy: external: true For storing video recordings and clips, I’ve mounted a network share from my Synology NAS and pointed to it in the Frigate Docker configuration using the directories /mnt/frigate/clips and /mnt/frigate/recordings.\nThe current config.yml file looks like this:\ndetectors: coral1: type: edgetpu device: pci:0 # coral2: # type: edgetpu # device: pci:1 # Optional: Database configuration database: # The path to store the SQLite DB (default: shown below) path: /media/frigate/frigate.db auth: enabled: True birdseye: # Optional: Enable birdseye view (default: shown below) enabled: True # Optional: Width of the output resolution (default: shown below) width: 1280 # Optional: Height of the output resolution (default: shown below) height: 720 # Optional: Encoding quality of the mpeg1 feed (default: shown below) # 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources. quality: 8 # Optional: Mode of the view. Available options are: objects, motion, and continuous # objects - cameras are included if they have had a tracked object within the last 30 seconds # motion - cameras are included if motion was detected in the last 30 seconds # continuous - all cameras are included always mode: continuous ffmpeg: hwaccel_args: #preset-vaapi - -hwaccel - vaapi - -hwaccel_device - /dev/dri/renderD128 - -hwaccel_output_format - yuv420p output_args: record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v copy -c:a aac detect: enabled: True width: 640 # \u0026lt;---- update for your camera\u0026#39;s resolution height: 480 # \u0026lt;---- update for your camera\u0026#39;s resolution fps: 5 objects: track: - person - dog - cat - bird record: enabled: True detections: pre_capture: 5 post_capture: 5 retain: days: 30 mode: active_objects snapshots: enabled: True timestamp: False bounding_box: True retain: default: 30 go2rtc: streams: carport: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 carport_sub: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 garden: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 garden_sub: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 office: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 office_sub: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 workshop: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 workshop_sub: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 cameras: carport: ffmpeg: inputs: - path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 roles: - record - path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 roles: - detect webui_url: \u0026#34;http://192.168.x.x\u0026#34; detect: width: 704 # \u0026lt;---- update for your camera\u0026#39;s resolution height: 480 # \u0026lt;---- update for your camera\u0026#39;s resolution fps: 5 garden: ffmpeg: inputs: - path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 roles: - record - path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 roles: - detect webui_url: \u0026#34;http://192.168.x.x\u0026#34; detect: width: 704 # \u0026lt;---- update for your camera\u0026#39;s resolution height: 480 # \u0026lt;---- update for your camera\u0026#39;s resolution fps: 5 office: ffmpeg: inputs: - path: rtsp://127.0.0.1:8554/office roles: - audio - record - path: rtsp://127.0.0.1:8554/office_sub roles: - detect webui_url: \u0026#34;http://192.168.x.x\u0026#34; onvif: host: 192.168.x.x port: 80 user: frigate password: \u0026#34;{FRIGATE_RTSP_PASSWORD}\u0026#34; workshop: ffmpeg: inputs: - path: rtsp://127.0.0.1:8554/workshop roles: - audio - record - path: rtsp://127.0.0.1:8554/workshop_sub roles: - detect webui_url: http://192.168.x.x onvif: host: 192.168.x.x port: 80 user: frigate password: \u0026#34;{FRIGATE_RTSP_PASSWORD}\u0026#34; In this Frigate configuration, I’ve included example IP addresses — you’ll definitely need to adjust these to match your own home network.\nOne major advantage of my EQ14 setup is that it has two separate network interfaces. This allows me to run the IP cameras on their own isolated network, adding an extra layer of security. Only the second network interface of the EQ14 is connected to my homelab. This way, the camera devices are physically separated from the rest of the network, minimizing potential attack surfaces.\nIntegrating Camera Streams with go2rtc # To integrate the RTSP streams from my IP cameras into Frigate as flexibly and efficiently as possible, I use go2rtc.\nWhy go2rtc?\ngo2rtc is a modern stream relay server that can aggregate, transcode, and forward RTSP, RTMP, and WebRTC streams. It’s especially useful because it ensures compatibility with various clients, reduces latency, and offloads work from the cameras.\nAdditionally, go2rtc makes it possible to seamlessly use streams with different protocols (RTSP, WebRTC) within the homelab and beyond. This is particularly valuable for more complex setups with multiple cameras and clients. The go2rtc service is already running inside the Frigate container.\nRTSP Stream Links for Dahua OEM Cameras # To find the correct RTSP links for my OEM Dahua IP cameras, I used this helpful website, which documents many common URL formats. These links can easily be opened and played with VLC or other media players.\nExample for my office camera:\nrtsp://192.168.x.x:554/live rtsp://192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0\u0026amp;unicast=true\u0026amp;proto=Onvif rtsp://192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 Current Setup and Hardware # I recently ordered a Coral M.2 A+E TPU on eBay.com and installed it in my server. The AI object detection with the Coral chip is significantly more efficient than using the CPU, which otherwise runs at full load and is not recommended for this task. I will link my blog post about the Coral TPU chip here once it’s available.\nI have already integrated the GPU for hardware acceleration with ffmpeg, and the system currently runs stably with four cameras. A fifth camera will be added soon, and in the long term, I plan to run up to eight cameras. This hardware setup should handle that without any issues.\nImportant Environment Variable for GPU Support # To enable detection of the AMD GPU in my ThinkCentre (sumpfgeist.lan) by Frigate, I had to set the following environment variable in my .env file:\nFRIGATE_RTSP_USER=frigate FRIGATE_RTSP_PASSWORD=secure_password LIBVA_DRIVER_NAME=radeonsi After migrating to the EQ14 (eq14.lan), which uses an Intel GPU, I removed the LIBVA_DRIVER_NAME variable because the AMD drivers are not needed there and would cause errors.\nFRIGATE_RTSP_USER=frigate FRIGATE_RTSP_PASSWORD=secure_password Recording Quality and Stream Management # The recordings should be as high quality as possible. For this, I needed to adjust some settings and, as mentioned before, use go2rtc to better manage the streams. Since switching, go2rtc has been working very well.\nFrigate is currently accessible via my Traefik proxy server at: https://frigate.techlab.icu\nConfiguring the go2rtc Streaming Server # For optimized video playback and real-time streaming, it’s recommended to use the integrated go2rtc server.\nThe configuration is quite simple: you extend the config.yml with the streams that go2rtc should manage.\ngo2rtc: streams: office: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=0 office_sub: - rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.x.x:554/cam/realmonitor?channel=1\u0026amp;subtype=1 These streams can then be accessed and monitored via the go2rtc web interface at http://192.168.x.x:1984.\nTo use the streams in the live view and for recordings at high quality with Frigate, the cameras must be configured accordingly in the config.yml to use the go2rtc stream paths:\ncameras: office: ffmpeg: inputs: - path: rtsp://127.0.0.1:8554/office roles: - audio - record - path: rtsp://127.0.0.1:8554/office_sub roles: - detect Troubleshooting # For my indoor camera in the workshop, the stream initially wouldn’t start through go2rtc, while the identical model in the office worked fine.\nI checked and compared the video and audio settings of the cameras. The problem turned out to be the audio codec: I had to switch from AAC to G.711A. After that, the stream started successfully in Frigate via go2rtc - both video and audio now work flawlessly.\nObject Detection # Object detection in Frigate is based on AI-powered recognition. For hardware acceleration, I use a Coral Edge TPU chip with 4 TOPS (tera operations per second). How to install this chip including its drivers is already described here.\nAdjusting Docker Compose # To use the Coral Edge TPU inside the Docker container, I modify the docker-compose.yaml file in my ~/docker-compose/frigate/ directory as follows, so the device is passed through to the container:\ndevices: #- /dev/bus/usb:/dev/bus/usb # USB Coral - /dev/apex_0:/dev/apex_0 # M.2 Coral #- /dev/apex_1:/dev/apex_1 # M.2 Dual Coral (optional) Activating Frigate Configuration # In the config.yml file located in my ~/docker/frigate/ folder, I activate the detectors by adding this section:\ndetectors: coral1: type: edgetpu device: pci:0 Configuring Object Detection # Object detection is enabled and configured in the detect section:\ndetect: enabled: True width: 640 # \u0026lt;---- update for your camera\u0026#39;s resolution height: 480 # \u0026lt;---- update for your camera\u0026#39;s resolution fps: 5 Note: The parameters width, height, and fps are usually overridden in the individual camera settings under cameras: and tailored per device. For detection, a lower resolution and frame rate are sufficient to save resources.\nRestart # After making these changes, you can restart the Docker container or, if you only changed the configuration, simply restart Frigate via the web interface.\nConclusion # The combination of Frigate, Coral Edge TPU, and the EQ14 has now become the core of my video surveillance system. Thanks to the high detection accuracy and stable performance, I now have a solution that is reliable and future-proof.\nNext, I plan to fine-tune the detection further, integrate additional automations via Home Assistant, and gradually make my system even smarter.\nHardware Recommendations # EQ14 Mini-PC on Amazon - compact and energy-efficient machine for Frigate Coral Edge TPU on Amazon US - AI accelerator for fast and precise object detection Coral Dual Edge TPU on Amazon - powerful AI accelerator (does not fit in EQ14) Some of the above are affiliate links. As an Amazon Associate, I earn from qualifying purchases.\nTools used:\nFrigate Docker Traefik Pi-Hole Coral Edge TPU ","date":"12 August 2025","externalUrl":null,"permalink":"/posts/frigate-open-source-nvr-real-time-ai-object-detection/","section":"Posts","summary":"Frigate is an open-source Network Video Recorder (NVR) that combines traditional video surveillance with AI-powered real-time detection of people, vehicles, animals, and other objects.","title":"Frigate: Open Source NVR with Real-Time AI Object Detection","type":"posts"},{"content":"","date":"7 August 2025","externalUrl":null,"permalink":"/tags/blackout/","section":"Tags","summary":"","title":"Blackout","type":"tags"},{"content":"","date":"7 August 2025","externalUrl":null,"permalink":"/tags/nut/","section":"Tags","summary":"","title":"NUT","type":"tags"},{"content":" How Do I Automate My Homelab During a Power Outage? # My homelab uses several uninterruptible power supplies (UPS) – including models from Eaton and CyberPower – to protect servers, NAS devices, and network equipment during power outages. Up until now, each UPS operated more or less independently, with no central monitoring or automated shutdown process.\nThat’s about to change: With the help of Network UPS Tools (NUT), I want to make my entire setup smarter and more resilient. NUT is an open-source project that supports a wide range of power devices, including UPS systems, power distribution units (PDUs), solar charge controllers, and power supplies. It provides a centralized platform for monitoring, management, and automation – both locally and across the network.\nMy goals:\nCentral monitoring of all UPS devices Automated shutdown of servers during power outages Integration with Home Assistant for smart home connectivity Optional visualization with tools like Uptime Kuma Web interface using PeaNUT via Docker In this article, I’ll walk you through how I installed, configured, and expanded NUT in my homelab – step by step.\nInstalling NUT # In my homelab, I use multiple UPS units – including an Eaton UPS connected via USB to a Raspberry Pi 3B. This Pi runs Ubuntu Server (a Debian-based OS) and acts as a dedicated local NUT server – solely for this one UPS.\nThat’s because each UPS in my setup will have its own NUT server, running on the device that’s physically connected to it. The systems powered by a given UPS will later connect to that specific server to query the UPS status or perform an automated shutdown during a power outage.\nStep 1: Connect to the server via SSH\nssh user@pi-server.lan Step 2: Update the system\nsudo apt update \u0026amp;\u0026amp; sudo apt upgrade Step 3: Install NUT\nInstall Network UPS Tools (NUT), including the server, client, and diagnostic tools:\nsudo apt install nut Configuring NUT # After installing NUT, the next step is to detect the connected UPS and properly configure it within the system. To do this, we use the nut-scanner tool, which automatically lists available devices. However, there are a few quirks to be aware of when running this on Ubuntu Server.\nStep 1: Run nut-scanner\nsudo nut-scanner -U On my systems, this command initially throws a number of warnings:\nCannot load USB library (libusb-1.0.so) : file not found. USB search disabled. Cannot load SNMP library (libnetsnmp.so) : file not found. SNMP search disabled. Cannot load XML library (libneon.so) : file not found. XML search disabled. Cannot load AVAHI library (libavahi-client.so) : file not found. AVAHI search disabled. Cannot load IPMI library (libfreeipmi.so) : file not found. IPMI search disabled. Cannot load NUT library (libupsclient.so) : file not found. NUT search disabled. These warnings indicate that certain libraries are missing or couldn’t be loaded. The good news: For basic USB detection of the UPS, it’s usually enough to work around the missing libraries by creating symbolic links. Here’s a GitHub thread discussing this workaround.\nStep 2: Create symbolic links for missing libraries\nFor pi-server.lan (Raspberry Pi, ARM64):\ncd /usr/lib/aarch64-linux-gnu/ sudo ln -s libusb-1.0.so.0 libusb-1.0.so sudo ln -s libavahi-client.so.3 libavahi-client.so For sumpfgeist.lan (x86_64 server):\ncd /usr/lib/x86_64-linux-gnu/ sudo ln -s libusb-1.0.so.0 libusb-1.0.so sudo ln -s libavahi-client.so.3 libavahi-client.so Note: I couldn’t create symlinks for libnetsnmp.so, libfreeipmi.so, or libneon.so, as those files were completely missing on my systems. Fortunately, they’re not required for basic USB functionality.\nStep 3: Scan results from nut-scanner\npi-server.lan (Eaton Ellipse 650 PRO):\nScanning USB bus. [nutdev1] driver = \u0026#34;usbhid-ups\u0026#34; port = \u0026#34;auto\u0026#34; vendorid = \u0026#34;0463\u0026#34; productid = \u0026#34;FFFF\u0026#34; product = \u0026#34;Ellipse PRO\u0026#34; serial = \u0026#34;G355M3xxxx\u0026#34; vendor = \u0026#34;EATON\u0026#34; bus = \u0026#34;001\u0026#34; device = \u0026#34;004\u0026#34; busport = \u0026#34;005\u0026#34; ###NOTMATCHED-YET###bcdDevice = \u0026#34;0100\u0026#34; sumpfgeist.lan (CyberPower CP1600EPFCLCD):\nScanning USB bus. [nutdev1] driver = \u0026#34;usbhid-ups\u0026#34; port = \u0026#34;auto\u0026#34; vendorid = \u0026#34;0764\u0026#34; productid = \u0026#34;0601\u0026#34; product = \u0026#34;CP1600EPFCLCD\u0026#34; serial = \u0026#34;BHYNZ200xxxx\u0026#34; vendor = \u0026#34;CPS\u0026#34; bus = \u0026#34;003\u0026#34; device = \u0026#34;003\u0026#34; busport = \u0026#34;001\u0026#34; ###NOTMATCHED-YET###bcdDevice = \u0026#34;0200\u0026#34; Both UPS devices – Eaton Ellipse 650 PRO and CyberPower CP1600EPFCLCD – were correctly detected. Now it’s time to configure them in the ups.conf file.\nStep 4: Add UPS entry to /etc/nut/ups.conf\npi-server.lan\n[server-room-rack] driver = \u0026#34;usbhid-ups\u0026#34; product = \u0026#34;Ellipse PRO\u0026#34; desc = \u0026#34;Server Room Rack UPS\u0026#34; port = \u0026#34;auto\u0026#34; vendorid = \u0026#34;0463\u0026#34; productid = \u0026#34;FFFF\u0026#34; bus = \u0026#34;001\u0026#34; sumpfgeist.lan\n[ups] driver = \u0026#34;usbhid-ups\u0026#34; product = \u0026#34;CP1600EPFCLCD\u0026#34; desc = \u0026#34;HomeLab UPS\u0026#34; port = \u0026#34;auto\u0026#34; vendorid = \u0026#34;0764\u0026#34; productid = \u0026#34;0601\u0026#34; bus = \u0026#34;003\u0026#34; Edit the file with:\nsudo nano /etc/nut/ups.conf Configuring the NUT-Server # After defining the connected UPS devices in ups.conf, the next step is to prepare the NUT server for network use. This involves editing several configuration files, creating user accounts, and enabling server mode.\nStep 1: upsd.conf – Enable network access\nsudo nano /etc/nut/upsd.conf Add the following line to allow incoming connections on port 3493 from all interfaces:\nLISTEN 0.0.0.0 3493 Alternatively, you can restrict access by specifying the IP address of the host instead of 0.0.0.0.\nStep 2: upsd.users – Create users for NUT services\nThis file defines user accounts with different privileges. These users are later used by upsmon or web interfaces.\nsudo nano /etc/nut/upsd.users pi-server.lan\n[admin] password = secure_password actions = SET actions = FSD instcmds = ALL upsmon primary [monuser] password = secure_password upsmon secondary sumpfgeist.lan\n[admin] password = secure_password actions = SET actions = FSD instcmds = ALL upsmon primary [monuser] password = secret upsmon secondary Note: The passwords above are for demonstration only. Always use strong, unique passwords and store them in a password manager if needed.\nStep 3: upsmon.conf – Configure the UPS monitor\nThe UPS monitor (upsmon) handles power monitoring and triggers actions like automated shutdowns during outages. Edit the configuration with:\nsudo nano /etc/nut/upsmon.conf pi-server.lan\nMONITOR server-room-rack@localhost 1 admin secure_password primary sumpfgeist.lan\nMONITOR ups@localhost 1 admin secret primary Syntax: MONITOR \u0026lt;UPS-name\u0026gt;@\u0026lt;host\u0026gt; \u0026lt;power-value\u0026gt; \u0026lt;username\u0026gt; \u0026lt;password\u0026gt; \u0026lt;primary|secondary\u0026gt;\nStep 4: nut.conf – Set the operating mode\nFinally, define the operating mode for the NUT service:\nsudo nano /etc/nut/nut.conf Change:\nMODE=none to:\nMODE=netserver With that, the NUT server is ready for network use and can now serve status data and respond to client requests.\nRestarting NUT Services # After configuration, we need to restart the NUT services and ensure they launch automatically at system startup.\nFor Debian/Ubuntu-based systems:\nsudo systemctl restart nut-server sudo systemctl enable nut-server sudo systemctl restart nut-monitor sudo systemctl enable nut-monitor This ensures that both the NUT server (nut-server) and the monitoring service (nut-monitor) start automatically after boot.\nFor Alpine Linux:\nOn Alpine Linux, services are managed via OpenRC. For a complete server setup, both nut-upsd and nut-upsmon must be started and added to the default runlevel:\ndoas rc-service nut-upsd restart doas rc-update add nut-upsd default doas rc-service nut-upsmon restart doas rc-update add nut-upsmon default This makes the NUT server on Alpine Linux fully operational and ensures it starts automatically after a reboot.\nVerifying NUT Functionality and Troubleshooting # Once the NUT server is correctly configured and running, you can test communication with the connected UPS using the upsc command.\nDisplay UPS data\nupsc \u0026lt;UPS-NAME\u0026gt; Example on pi-server.lan:\nupsc server-room-rack Example on sumpfgeist.lan:\nupsc ups Common error after configuration\nIf you see the following error on first run: Error: Driver not connected\nIt could be due to a faulty or incomplete USB connection. In one case, simply unplugging and reconnecting the USB cable resolved the issue. After that, the UPS was recognized correctly, and upsc returned detailed status output like this:\nEaton Ellipse 650 PRO\nInit SSL without certificate database battery.charge: 100 battery.charge.low: 20 battery.runtime: 1734 battery.type: PbAc device.mfr: EATON device.model: Ellipse PRO 650 ... CyberPower CP1600EPFCLCD\nInit SSL without certificate database battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 20 battery.mfr.date: CPS battery.runtime: 3750 battery.runtime.low: 300 battery.type: PbAcid battery.voltage: 27.4 battery.voltage.nominal: 24 device.mfr: CPS device.model: CP1600EPFCLCD ... Recurring error after reboot\nIn another case, the same error reappeared after a system reboot. However, this time reconnecting the USB cable didn’t fix the issue.\nRunning nut-scanner revealed the cause:\nsudo nut-scanner -U The output showed that the USB bus and device numbers had changed:\nAt the time of installation:\nbus = \u0026#34;003\u0026#34; device = \u0026#34;003\u0026#34; After reboot:\nbus = \u0026#34;004\u0026#34; device = \u0026#34;006\u0026#34; As a result, the driver could no longer locate the UPS. Solution: Manually update the /etc/nut/ups.conf file to reflect the new bus number:\nsudo nano /etc/nut/ups.conf Change bus = \u0026quot;003\u0026quot; to bus = \u0026quot;004\u0026quot; and save the file. After restarting the service, the UPS should be reachable again, which you can verify with:\nupsc ups You should also see its status back to online on https://usv.techlab.icu\nSuch issues should never go unnoticed – especially not during a power outage. It’s highly recommended to set up automated monitoring that includes:\nUPS status checks Notifications in case of connection errors The next section of this article will cover how to implement such monitoring and alert mechanisms.\nMonitoring UPS Status with Uptime Kuma # I monitor the status of my UPS devices using Uptime Kuma, by querying the JSON API provided by PeaNUT. For each UPS, I’ve set up two HTTPS monitors that check the following endpoints:\nhttps://usv.techlab.icu/api/v1/devices/ups https://usv.techlab.icu/api/v1/devices/server-room-rack Each monitor looks for two key indicators:\nThe string \u0026quot;ups.status\u0026quot;:\u0026quot;OL\u0026quot; indicates that the UPS is online and currently receiving utility power. If the text Device Unreachable is found, it means the UPS is no longer reachable. This could be caused by a connection issue or a failed NUT service. Power may still be present, but that cannot be guaranteed.\nFor better organization, I’ve grouped the two checks per UPS into logical groups:\nUPS [server-room-rack] UPS [usv] This way, I can immediately see if a UPS is offline, if mains power has failed, or if both issues occur simultaneously.\nNotifications are sent from Uptime Kuma to Gotify. Both services are running in Docker containers. If you\u0026rsquo;re interested, I may write a follow-up blog post covering that setup in more detail.\nDeploying PeaNUT with Docker # PeaNUT is a lightweight web dashboard for Network UPS Tools (NUT) – perfect for visualizing UPS status. The application is easy to deploy using Docker.\nHere’s my docker-compose.yaml file for deploying PeaNUT:\nservices: peanut: image: brandawg93/peanut:latest container_name: PeaNUT restart: unless-stopped volumes: - /home/sz/docker/peanut/config:/config networks: peanut: proxy: ipv4_address: 192.168.x.x ports: - 8080:8080 environment: - WEB_PORT=8080 #- WEB_USERNAME=\u0026#34;admin\u0026#34; #- WEB_PASSWORD=\u0026#34;admin1234\u0026#34; labels: - \u0026#34;traefik.enable=true\u0026#34; - \u0026#34;traefik.http.routers.peanut.entrypoints=http\u0026#34; - \u0026#34;traefik.http.routers.peanut.rule=Host(`usv.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.middlewares.peanut-https-redirect.redirectscheme.scheme=https\u0026#34; - \u0026#34;traefik.http.routers.peanut.middlewares=peanut-https-redirect\u0026#34; - \u0026#34;traefik.http.routers.peanut-secure.entrypoints=https\u0026#34; - \u0026#34;traefik.http.routers.peanut-secure.rule=Host(`usv.techlab.icu`)\u0026#34; - \u0026#34;traefik.http.routers.peanut-secure.tls=true\u0026#34; - \u0026#34;traefik.http.routers.peanut-secure.service=peanut\u0026#34; - \u0026#34;traefik.http.services.peanut.loadbalancer.server.port=8080\u0026#34; - \u0026#34;traefik.docker.network=proxy\u0026#34; networks: peanut: proxy: external: true The web interface will then be accessible at https://usv.techlab.icu – secured via Traefik with TLS.\nTo connect to NUT servers, edit the settings.yml file inside the configuration directory. My setup looks like this:\nNUT_SERVERS: - HOST: 192.168.x.x PORT: 3493 USERNAME: admin PASSWORD: secure_password - HOST: 172.19.x.x PORT: 3493 USERNAME: admin PASSWORD: secret INFLUX_HOST: \u0026#34;\u0026#34; INFLUX_TOKEN: \u0026#34;\u0026#34; INFLUX_ORG: \u0026#34;\u0026#34; INFLUX_BUCKET: \u0026#34;\u0026#34; INFLUX_INTERVAL: 10 Managing Connected UPS Devices # In addition to monitoring status, UPS devices can also be controlled directly from the command line. For this purpose, Network UPS Tools (NUT) provides the upscmd utility.\nFor example, the following command lists all available commands for the UPS named server-room-rack:\nupscmd -l server-room-rack Example: Controlling the Beeper\nA common use case is disabling or re-enabling the audible alarm (beeper). This requires a valid username and password:\n# Disable beeper upscmd -u admin server-room-rack beeper.disable # Enable beeper again upscmd -u admin server-room-rack beeper.enable After entering the password, the command will be confirmed with OK. The UPS accepts these commands directly via the NUT protocol.\nOther Useful Commands\nBelow is a selection of useful commands, depending on the specific UPS model:\nCommand Description load.off Immediately turn off the load load.off.delay Turn off the load after a delay load.on Immediately turn on the load load.on.delay Turn on the load after a delay shutdown.return Power off the load, then turn it back on automatically when power returns shutdown.stayoff Power off the load and keep it off shutdown.stop Abort an ongoing shutdown process Note: Not all UPS models support all commands. The exact list is device-specific and can be retrieved using upscmd -l \u0026lt;ups-name\u0026gt;.\nAdding Additional NUT-Clients # In a typical homelab, it\u0026rsquo;s common to have multiple systems connected to different UPS devices. With Network UPS Tools (NUT), you can manage not only the system directly connected to a UPS, but also any other devices powered by the same UPS — even across the network.\nTo do this, you configure NUT clients. These systems connect to a central NUT server (which is physically connected to the UPS via USB) and receive a shutdown signal in the event of a power outage.\nArchitecture Overview\nSystems powered by the same UPS → act as NUT clients, connected to a shared NUT server Systems with their own UPS → run both a NUT server and a NUT client locally Example Assignment\nNUT-Clients:\nsumpfkrieger.lan → client of sumpfgeist.lan sumpfgeist.lan → client of sumpfgeist.lan nas.techlab.icu → client of sumpfgeist.lan eq14.lan → client of sumpfgeist.lan pi-server.lan → client of pi-server.lan NUT-Servers:\nsumpfgeist.lan → server for CyberPower CP 1600EPFCLCD pi-server.lan → server for Eaton Ellipse 650 PRO Setting Up a Synology NAS as a NUT-Client # A Synology DiskStation can be configured as a network UPS client. You’ll find the relevant settings under:\nControl Panel \u0026gt; Hardware \u0026amp; Power \u0026gt; UPS\nSettings:\nEnable UPS support UPS Type: Synology UPS Server Shutdown time: e.g. 3 minutes Network UPS server: 192.168.x.x (IP address of your NUT server) Requirements on the NUT-Server:\nTo allow the DiskStation to connect, make sure the following configuration is applied on the NUT server:\nThe UPS must be named ups Username: monuser Password: secret monuser must be configured with the secondary role Once you click Apply, the DiskStation will establish a connection to the UPS. In the event of a power outage, the NAS will automatically shut down safely after the configured delay — stopping all services, unmounting volumes, and ensuring a clean shutdown before battery power runs out.\nSetting Up Additional Servers as NUT-Clients # To allow multiple systems in your network to shut down gracefully during a power outage, you can configure them as NUT clients. These clients monitor the UPS via a central NUT server.\nInstall on Ubuntu:\nsudo apt install nut-client Check the connection to the NUT server:\nupsc server-room-rack@192.168.x.x upsc ups@192.168.x.x Install on Alpine Linux:\n# Install the package doas apk add nut # Test the connection upsc server-room-rack@192.168.x.x upsc ups@192.168.x.x Configure the UPS monitor and edit the upsmon.conf file:\nsudo nano /etc/nut/upsmon.conf or\ndoas nvim /etc/nut/upsmon.conf Add the appropriate monitor configuration depending on which UPS supplies power to the client:\nIf the client is powered by the Eaton Ellipse 650 PRO:\nMONITOR server-room-rack@192.168.x.x 1 monuser PASSWORD secondary If the client is powered by the CyberPower CP 1600EPFCLCD:\nMONITOR ups@192.168.x.x 1 monuser secret secondary Note: The password secret is required for compatibility with Synology NAS devices, which expect this fixed value.\nIn /etc/nut/nut.conf, change the mode from none to:\nMODE=netclient Now start and enable the client:\nsudo systemctl restart nut-client sudo systemctl enable nut-client On Alpine Linux:\ndoas rc-service nut-upsmon start doas rc-update add nut-upsmon default Expected output after first start:\ndoas rc-service nut-upsmon start * Caching service dependencies ... [ ok ] * Starting udev ... [ ok ] * Waiting for uevents to be processed ... [ ok ] * Starting UPS Monitor ... Network UPS Tools upsmon 2.8.2 fopen /run/upsmon.pid: No such file or directory Could not find PID file to see if previous upsmon instance is already running! UPS: ups@192.168.x.x (secondary) (power value 1) Using power down flag file /etc/killpower Shutdown Scenario\nWhen the primary NUT server (configured with MODE=netserver) issues an FSD (Forced Shutdown) signal — typically because the UPS battery is running low — this signal is propagated to all connected clients.\nEach client then initiates a clean shutdown before power is lost. That’s why each system running nut-client should be configured to monitor the correct UPS by name and IP.\nTest Run: Simulating a Power Outage # Before waiting for a real power outage — or unplugging your UPS — you can test your entire NUT setup by manually triggering a Forced Shutdown (FSD) event. This is done from the NUT server using the following command:\nsudo upsmon -c fsd This command simulates a complete shutdown scenario:\nAll connected clients will receive the shutdown signal and begin shutting down safely. After the configured delay, the UPS itself will power off. At that point, all connected devices will be completely without power.\nNote: This command only works locally on the server. It cannot be triggered remotely from a client.\nReal-World Experience # Personally, I haven’t used the manual test command yet. Instead, I’ve waited for actual power outages and, when necessary, shut systems down manually. During these real-world scenarios, I was able to successfully observe the full NUT setup in action:\nAll connected systems shut down in sequence, depending on their respective battery status. The UPS automatically powers off after all systems have shut down safely. This prevents the UPS battery from becoming fully discharged, which can happen very quickly under uncontrolled usage. Once power returns, the UPS units start back up automatically, and all connected systems boot as if nothing happened. I receive real-time push notifications about power outages, shutdown events, and system recovery — thanks to the integration with Gotify. Once our solar system is fully operational, it\u0026rsquo;s likely that the UPS units won’t need to shut down completely as often. The additional energy buffer will further improve overall resilience against outages.\nBonus: Integrating NUT with Home Assistant # UPS monitoring via NUT can easily be integrated into Home Assistant. This allows power outages, battery status, and shutdown warnings to be displayed — and automated — within your smart home system.\nAdding the Integration\nIn Home Assistant, go to “Settings \u0026gt; Devices \u0026amp; Services”. Click “Add Integration” and search for “Network UPS Tools (NUT)”. A dialog will appear: Enter the IP address of your NUT server. Leave the port set to the default (3493). Provide the username (monuser) and the corresponding password. Optionally, assign or create a room. Note on Docker-Based Installations\nIf Home Assistant is running in a Docker container (as in my case on sumpfgeist.lan), the container may not be able to reach the regular host IP address (e.g., 192.168.x.x). In this case, you’ll need to use the internal IP of the Docker bridge, for example:\n172.21.0.1 This IP belongs to the Docker bridge (br0) and enables communication between the Home Assistant container and the NUT service running on the host.\nWith that, we\u0026rsquo;ve reached the end of this article. The UPS units are no longer isolated devices but now part of an intelligent, connected system. Once the solar power system is integrated, this setup will evolve into a robust and automated energy management solution — requiring no manual intervention, but offering full control and visibility.\nTools Used\nNetwork UPS Tools PeaNUT Uptime Kuma Gotify Home Assistant ","date":"7 August 2025","externalUrl":null,"permalink":"/posts/nut-in-the-homelab-central-ups-monitoring-and-automation/","section":"Posts","summary":"My homelab uses several uninterruptible power supplies (UPS) – including models from Eaton and CyberPower – to protect servers, NAS devices, and network equipment during power outages.","title":"NUT in the Homelab: Central UPS Monitoring and Automation","type":"posts"},{"content":"","date":"7 August 2025","externalUrl":null,"permalink":"/tags/ups/","section":"Tags","summary":"","title":"UPS","type":"tags"},{"content":"","date":"6 de August de 2025","externalUrl":null,"permalink":"/es/tags/apag%C3%B3n/","section":"Tags","summary":"","title":"Apagón","type":"tags"},{"content":"","date":"6. August 2025","externalUrl":null,"permalink":"/de/tags/notstrom/","section":"Tags","summary":"","title":"Notstrom","type":"tags"},{"content":"","date":"6 de August de 2025","externalUrl":null,"permalink":"/es/tags/sai/","section":"Tags","summary":"","title":"SAI","type":"tags"},{"content":"","date":"6. August 2025","externalUrl":null,"permalink":"/de/tags/usv/","section":"Tags","summary":"","title":"USV","type":"tags"},{"content":"","date":"5 August 2025","externalUrl":null,"permalink":"/tags/keyboard/","section":"Tags","summary":"","title":"Keyboard","type":"tags"},{"content":"","date":"5 August 2025","externalUrl":null,"permalink":"/tags/keyd/","section":"Tags","summary":"","title":"Keyd","type":"tags"},{"content":" My Perfect Keyboard for macOS and Linux # In April 2025, I finally found it: my perfect keyboard. The Rainy 75 Pro from Wobkey isn\u0026rsquo;t just high quality – it completely won me over from the very first keystroke.\nThe solid unibody aluminum case, the deep sound profile, and the well-balanced typing feel make it a true standout. But what mattered most to me was seamless integration into my multi-system setup (macOS and Linux) – no cable swapping, no constant reconfiguration.\nI use the keyboard via USB on a KVM switch. It’s important not to plug it into the dedicated “keyboard port” on the switch (which only emulates a basic keyboard), but into a regular USB port instead – otherwise, advanced features like macros and VIA compatibility may not work reliably.\nIn this article, I’ll show how I customized the keyboard to perfectly fit my workflow: including full support for umlauts despite using a US layout, key remapping, and useful macros with keyd and Via.\nWhy the US Layout? # If you do a lot of programming, you’ll eventually end up using the US keyboard layout – at least that’s what happened to me. Characters like {}, [], or ~ are all easy to reach without awkward key combos, and that makes a real difference in everyday use.\nThe US layout is also the default in many tools and operating systems. Keyboard shortcuts tend to work more reliably, and when working remotely (e.g., via SSH), you’re less likely to run into issues with mismatched key mappings.\nOf course, the downside: no umlauts. But don’t worry – there are elegant solutions for that, both on macOS and Linux.\nUmlauts on macOS: Easy with the Win or Right Alt Key # On my Mac Studio, I type umlauts using the following key combinations:\nWin+u then u → ü Win+u then a → ä Win+u then o → ö Win+s → ß Surprisingly, this works very well – without any additional tools or third-party software. The right Alt key serves the same purpose and is actually better than the Win key, since under macOS it acts as the Option key.\nImportant: The keyboard must be running in Mac mode. You can enable it by pressing and holding Fn + M for at least 3 seconds.\nOnly then will the macOS-specific key mappings, such as Command (⌘) and Option (⌥), work correctly.\nUmlauts on Linux: With keyd and the Compose Key # On Ubuntu with Gnome, the setup was simple: I switched the keyboard layout to English (Macintosh) and selected the left Alt key under Alternative Characters Key. This allowed me to use the same key combinations as on macOS. However, this approach is not recommended – it’s better to use the right Alt key, also known as the familiar AltGr key.\nOn more minimalist setups like Alpine or Arch Linux – my preferred Linux distributions – this doesn\u0026rsquo;t work out of the box. That’s where keyd comes into play. And that’s also where I’ll focus, as these are the systems I use on a daily basis.\nThanks to keyd – Keyboard Remapping Done Right # Keyd is a lightweight, system-wide tool for remapping keys – independent of any desktop environment. Perfect for minimal Linux setups.\nInstallation on Alpine Linux\ndoas apk add keyd setxkbmap Or on Arch Linux:\nsudo pacman -Sy keyd xorg-setxkbmap Basic configuration: /etc/keyd/default.conf\n[ids] * [main] leftalt = leftmeta leftmeta = leftalt This, for example, turns the left Alt key into the Super key (Meta) – and vice versa.\nEnabling the Compose Key with setxkbmap # You can activate the Compose key functionality system-wide with the following command:\nsetxkbmap -option compose:menu In my .xinitrc, it looks like this:\n#!/bin/bash # set compose key setxkbmap -option compose:menu For me, the right Control key becomes the Compose key (which is usually the AltGr key) – ideal for typing special characters and umlauts.\nSince my keyboard doesn’t have a dedicated AltGr key, I had previously configured the right Control key as the right Alt key in Via. While AltGr works well for special characters on many Linux desktops, the Compose key is often more flexible – especially in minimalist setups.\nAdvanced keyd Configuration for Umlauts # For even more convenient input, I created a custom keyd layer called dia. It defines macros for typing umlauts and special characters:\n[dia] # Make o to ö o = macro(compose o \u0026#34;) # Make a to ä a = macro(compose a \u0026#34;) # Make u to ü u = macro(compose u \u0026#34;) # Make e to € e = macro(compose e =) # Make s to ß s = macro(compose s s) The right Alt key (AltGr) activates this layer:\nrightalt = layer(dia) So for example, AltGr + o gives you ö – much faster and more intuitive than traditional Compose sequences.\nStarting the keyd Service # To ensure keyd starts automatically at boot, the following service needs to be enabled:\nOn Alpine Linux\ndoas rc-update add keyd doas rc-service keyd start Getting an error on startup?\nIf keyd crashes on startup, it might be due to a conflict with the keyd-openrc package. In that case, try the following sequence:\ndoas apk del keyd-openrc reboot doas rc-update add keyd doas rc-service keyd start On Arch Linux\nsudo systemctl enable -now keyd Reloading the configuration\nAfter modifying /etc/keyd/default.conf, you can reload keyd like this:\nkeyd reload Copy \u0026amp; Paste in the Terminal # On macOS, copy \u0026amp; paste in the terminal is as easy as using Alt+C and Alt+V. These act as Command+C and Command+V on macOS.\nOn Linux, things are a bit trickier: In many terminal emulators, Ctrl+C doesn’t copy — it terminates the currently running program. Instead, you often use Shift+Ctrl+C to copy and Shift+Ctrl+V to paste — which quickly becomes inconvenient, especially when switching between systems or apps regularly.\nIn my setup using st – the minimalist terminal from suckless – copy \u0026amp; paste felt awkward at first.\nHow I optimized this — including clipboard history and custom shortcuts — is something I’ll cover in an upcoming blog post.\nCustomizing keyboard firmware with Via # Via is a web app that allows you to comfortably configure compatible keyboards like my Rainy 75 Pro.\nIt lets you change key mappings, macros, and layers directly in the firmware without flashing, directly over USB.\nImportant: Via only works when the keyboard is connected directly via USB, not through a KVM switch. It also primarily supports Chrome-based browsers. Firefox does not work at the moment.\nMy current setup # I used to have a macro on Caps Lock, but I have since simplified and made my setup more consistent:\nIn tmux I use the prefix: Ctrl + Space In Neovim the Leader Key is also Space This feels much more natural and creates a consistent workflow across both tools.\nAdditionally, in Via I remapped the right Ctrl key to the right Alt key to improve access to special characters and layout adjustments.\nConclusion # My Rainy 75 Pro isn’t just a visual and tactile pleasure — with the right tools like keyd, setxkbmap, and Via, its functionality reaches an entirely new level. Whether on macOS or Linux, I can work seamlessly, type umlauts with ease, and maintain full control over my custom keybindings.\nIn future articles, I’ll dive deeper into my Linux setup, including dwm, nvim, and clipboard configuration. If you have questions about the keyboard or any of the configurations, feel free to reach out or leave a comment.\nNote: You can find the Rainy 75 Pro on Amazon – this is an affiliate link with no additional cost to you.\nTools I used:\nRainy 75 Pro - Wobkey Keyd GitHub Repo Setxkbmap Linux man page Via Web App ","date":"5 August 2025","externalUrl":null,"permalink":"/posts/rainy-75-pro-this-is-what-my-perfect-keyboard-looks-like/","section":"Posts","summary":"In April 2025, I finally found it: my perfect keyboard. The Rainy 75 Pro from Wobkey isn’t just high quality – it completely won me over from the very first keystroke.","title":"Rainy 75 Pro: This Is What My Perfect Keyboard Looks Like","type":"posts"},{"content":"","date":"5 August 2025","externalUrl":null,"permalink":"/tags/rainy75pro/","section":"Tags","summary":"","title":"Rainy75Pro","type":"tags"},{"content":"","date":"5 August 2025","externalUrl":null,"permalink":"/tags/setxkbmap/","section":"Tags","summary":"","title":"Setxkbmap","type":"tags"},{"content":" A Test with Pannellum # ","date":"13 December 2024","externalUrl":null,"permalink":"/tour/","section":"","summary":"A first test of a virtual tour using Pannellum.","title":"The New Virtual Tours","type":"page"},{"content":"","date":"7. December 2024","externalUrl":null,"permalink":"/de/tags/aktien/","section":"Tags","summary":"","title":"Aktien","type":"tags"},{"content":"","date":"7 December 2024","externalUrl":null,"permalink":"/tags/bitcoin/","section":"Tags","summary":"","title":"Bitcoin","type":"tags"},{"content":"","date":"7 December 2024","externalUrl":null,"permalink":"/tags/cryptocurrency/","section":"Tags","summary":"","title":"Cryptocurrency","type":"tags"},{"content":"","date":"7 December 2024","externalUrl":null,"permalink":"/tags/finances/","section":"Tags","summary":"","title":"Finances","type":"tags"},{"content":"","date":"7. December 2024","externalUrl":null,"permalink":"/de/tags/finanzen/","section":"Tags","summary":"","title":"Finanzen","type":"tags"},{"content":"","date":"7 December 2024","externalUrl":null,"permalink":"/categories/investment/","section":"Categories","summary":"","title":"Investment","type":"categories"},{"content":"Take action - Seize your “once-in-a-lifetime opportunity” now! Invitation to our confidential presentation.\nHave you ever imagined turning an investment of 30,000 USD into 450,000 USD in just 18 months? This is not unusual for large investors, but for everyone else it is a world closed off. That\u0026rsquo;s changing now!\nWhy act now? The financial world of today # The euro is falling and falling:\nAgainst the dollar Against gold Against Bitcoin Conclusion: Your money in the bank, or in a financial investment? An endangered species.\nYour investments - and why you should rethink # Do you have large sums in bank deposits? Congratulations on your optimism, but you are impoverishing yourself, because bank deposits are always subject to inflation and your investment loses a massive amount of purchasing power.\nHave you invested in Bitcoin? If you invested at the right time, congratulations, but do you really believe that the Bitcoin price will be worth ten or fifteen times as much in the next 18 months, i.e. around 900,000 – 1,300,000 USD?\nAre you invested in stocks? Good idea if you were just lucky enough to be in a stock like Facebook, Google or Amazon at the very beginning, because the highest profits are made at the beginning. And on today\u0026rsquo;s basis, even with Facebook and Co, a 10-15x price increase in 18 months is illusory.\nWhat to do? Here is the alternative # PRE- IPO stocks of “brick and mortar” companies, meaning companies that produce real goods (not digital).\nIPOs (Initial Public Offerings) historically offer the best opportunities for a multiplication of your investment.\nTechnology companies that have come to market as \u0026ldquo;first movers\u0026rdquo; with trend-setting technologies have successfully implemented almost all of their IPOs on the stock exchange and turned small investors into multimillionaires time and again in just a few years.\nQuestion: Who has produced the most dollar millionaires worldwide? # No, NOT Amway, Siemens or BMW, but Microsoft, Apple, Amazon, Tesla and many, many others – all companies that were the first on the market with groundbreaking new technologies.\nFor a short time, we are offering you exactly this opportunity:\nBy buying shares in a technology company before its IPO, your investment can increase in value by a factor of 15 in about 18-24 months.\nIs such an increase in value realistic at all? # Of course! There are many examples of this: Oracle, NVIDIA, Microsoft, Amazon, Coca Cola\u0026hellip;\nThe important word is PRE-IPO. Once a stock is listed on the stock exchange (NYSE or NASDAQ), there is still potential for an increase in value for many years afterwards, but it is pre-market that matters (“where the jazz is being played\u0026hellip;”)\nYour profit plan after the IPO # At IPO: 10% profit After 6 months: Another 20% After 12 months: Another 30 % After 18 months: Your shares will be freely saleable. What are you going to do with these high revenues if they are being paid out from mid-2026 to the end of 2027?\nWithdraw money and travel all over the world? Great car? Invest into a valuable real estate? Realize your dream home or your life\u0026rsquo;s dream, whatever it might be? Important message to all Bitcoin investors # Particularly exciting: These stocks can be bought with Bitcoin. An investment that combines traditional and modern approaches to offer you maximum flexibility.\nMy personal strategy for years # I haven\u0026rsquo;t had any money in the bank for a long time. I started with cryptocurrencies in 2017 and moved to Paraguay with my family in 2019. We use some cash for everyday life but otherwise we have our capital tied up in tangible assets and cryptocurrencies.\nNow I recently heard about this new exciting IPO and was in a Zoom meeting myself a few days ago to get this information and I will not miss this promising opportunity.\nI have decided to invest part of the price gains with Bitcoin (ATH in December 2024) in these technology shares and would like to give my readers the opportunity to obtain this information without obligation in order to make a decision afterwards.\nI strongly assume that no more PRE- IPO shares of this company will be available in the next few months and that you will only be able to buy these shares again after the IPO. So it\u0026rsquo;s all the more worth being early this time!\nHow can you participate? # Join our confidential presentation where the co-founder of this technology company and Dr. Erwin Annau, a asset protection specialist, will explain all the details. Invest an hour of your time - it could be the opportunity of a lifetime.\n👉 Register now for free, no obligation, (confidental) presentation:\nClick here for the Legal Notice! What are you waiting for? # This opportunity could be the turning point in your life. See you soon - on Zoom!\nBest regards\nSebastian\nPS: Featured image is Designed by Freepik\n","date":"7 December 2024","externalUrl":null,"permalink":"/posts/ipo-shares/","section":"Posts","summary":"Take action - Seize your “once-in-a-lifetime opportunity” now! Invitation to our confidential presentation.","title":"IPO shares: Your unique opportunity to exploit large investor potential","type":"posts"},{"content":"","date":"7. December 2024","externalUrl":null,"permalink":"/de/tags/kryptow%C3%A4hrung/","section":"Tags","summary":"","title":"Kryptowährung","type":"tags"},{"content":"","date":"7 December 2024","externalUrl":null,"permalink":"/tags/shares/","section":"Tags","summary":"","title":"Shares","type":"tags"},{"content":" My blog # My blog has grown to include quite a few pages in multiple languages. To make the content easily accessible and navigation as simple as possible, this page gives you an overview of my blog and its contents.\nDay and night # Do you prefer a light or dark view of the blog?\nYou can click on the sun or moon icon in the top right menu to switch between the two appearances.\nLanguages # Click on the flags below to view the blog in the corresponding language.\nThe language switcher in the top menu changes the language and automatically redirects you to the translation of the current page.\nDeutsch\nEnglish\nEspañol\nSearch # There is also a search function in the top menu that lets you find content across the blog. Alternatively, the search can be opened directly with the / key.\nReading Mode # In the top menu you\u0026rsquo;ll find an accessibility icon where you can adjust the following settings:\nDisable blur – removes the blur effect in the background Disable background image – hides background images Show link underline – makes links more recognizable through underlining Enable Zen Mode – hides distractions and focuses the view on the article text Font size – adjusts the font size across the entire blog The Zen Mode can also be activated directly while reading an article via this icon:\nIt hides the table of contents and the author card and widens the article text for a more comfortable reading experience.\nZen Mode is temporary and resets when the page is reloaded. The settings under Accessibility however are saved permanently.\nMain Menu # I like to keep the menu clean and simple. These are the available menu items:\nHome Discover Profile Subpages # You are currently on the overview page for Discover, from which you can reach all other subpages of my blog:\nPosts Categories Series Tags Additional pages:\nWeather \u0026amp; Livecam Newsletter Categories # I currently organize my blog posts mainly into these three categories. Click on a category to filter my posts accordingly.\nParaguay Roadtrip TechLab Tags # Tags complement the categories and allow for more granular filtering. You can find a complete overview of all tags here.\nFor a better starting point, I recommend browsing the categories or using the search function directly.\nRSS feed # I hope you enjoy exploring my blog – feel free to come back regularly or subscribe to the RSS feed. Separate feeds are also available for individual categories and tags.\nBest regards,\nSebastian\n","date":"7 December 2024","externalUrl":null,"permalink":"/overview/","section":"","summary":"This overview will help you find your way around.","title":"Blog Overview","type":"page"},{"content":" Weather Station # Anastacia Circle 5A Livecam # Anastacia Circle 5A A new snapshot of this livecam is uploaded every minute. The last current photo from Anastacia Circle 5A.\nwebcam is currently not available!\n","date":"7 December 2024","externalUrl":null,"permalink":"/livecam/","section":"","summary":"Here you can find the local weather and pictures of livecams from Paraiso Verde.","title":"Weather and Livecam","type":"page"},{"content":"In the second part of this series we created some content for your free Hugo website and today we want to upload and publish this content to the internet for free.\nPrepare Git and create a GitHub repository # First we have to upload all the files to a GitHub repository. Git must be installed on your computer. Make sure that you are in the root directory of your website on your local machine using the terminal and then use the following command:\ngit init Now a GitHub repository is initialized. Next create a .gitmodules file in the same folder.\ntouch .gitmodules The PaperMod theme should be a submodule at the GitHub repository, so write to the .gitmodules file this:\n[submodule \u0026#34;themes/PaperMod\u0026#34;] path = themes/PaperMod url = \u0026#34;https://github.com/adityatelange/hugo-PaperMod.git\u0026#34; Create a free account on GitHub # If you have no free GitHub account yet then register now and create your repository for your website. Link to GitHub.\nCreate a token for secure login # A token is needed for secure login with Git to GitHub. Generate a new token on GitHub. Link to GitHub settings.\nNote: yourname website Expiration: 90 days [x] public_repo\nThen paste these commands into terminal:\necho \u0026#34;# yourname\u0026#34; \u0026gt;\u0026gt; README.md git init git add README.md git commit -m \u0026#34;first commit\u0026#34; git branch -M main git remote add origin https://github.com/yourname/blog.git git push -u origin main Type username and token if asked. Now the files would be uploaded to the GitHub repository.\nHow to save and update the token after 90 days # Save this token in the Mac Keychain: Click on the Spotlight icon (magnifying glass) on the right side of the menu bar.\nType Keychain Access then press the Enter key to launch the app:\nIn Keychain Access, search for github.com. Find the internet password entry for github.com. Edit or delete the entry accordingly. You are done! Note: Now Git is able to upload files to GitHub without any errors!\nAfter 90 days generate a new token on github.com and exchange the old token in the Keychain with the new generated token!\nMaybe delete at first the old token from the Keychain and then make a push command with username and password/token. After this command was successful create a new entry in the Mac Keychain or restore the old one and replace the old token with the new token.\nNote: This works in a similar way with other operating systems.\nWhere to deploy the website? # Next create a free account at Netlify: https://www.netlify.com/\nNew site from Git and connect with GitHub. Chose the repository from the website. Deploy as yourname on yourname team from main branch using hugo command and publishing to public. Deploy yourname to Netlify.\nThere was a problem with the gitsubmodule and the following command resolved this issue. Use local website root directory in terminal.\ngit submodule update --remote –init The link now has another number behind tree and it worked for me.\nDeploy again with Netlify and now it should work. The website is online!\n👉 https://sebastianzehner.netlify.app\nRegister and connect a domain to the website # I am using Hostinger for Domain registration and renewal. The first two years, Hostinger offers a special price for only 4.99 USD per year.\nAfter two years the regular price is 15.99 USD per year for one .com domain. I have only one domain left and want to use it for my new website.\nWe are able to pay for this domain in crypto for one, two or three years. I like that and this are the only costs for our new website because the hosting with Netlifly and GitHub is free of charge. The software Hugo and the theme PaperMod are Open Source and also for free.\nOn the website Netlify in the backend we set up a custom domain. Add a custom domain to your site and press verify and than add domain. In domain management I received some DNS settings.\nPoint A record to xx.x.xx.x for yourdomain.com I changed the IP address for my domain at Hostinger in the DNS records for the type A pointed to xx.x.xx.x and saved these settings.\nAfter a few minutes later Netlify registered this changes and now my website is reachable under http://sebastianzehner.com and http://www.sebastianzehner.com redirects to http://sebastianzehner.com. But this is not secure and we have to set up an encryption.\nEnable the TLS certificate: Let’s Encrypt # At the domain management in the backend from Netlify I verified the DNS configuration for SSL/TLS certificate. Just one click on the button and DNS verification was successful ✅\nThat’s it. So easy. Now the connection is secure and the website reachable with my domain https://sebastianzehner.com\nIn the meantime domain management at Netlify says:\nYour site has HTTPS enabled ✅ Last step to configure this new domain in the hugo.toml config file. Insert or rename this line:\nbaseURL = \u0026#39;https://yourdomain.com\u0026#39; Upload these changes to the internet with a git push and we are done.\nOur new secure and minimalistic Hugo website with the PaperMod theme is online and visitors are welcome to read my cool stuff 😎\nThank you for reading my blogpost and have a nice day. I will go forward in the next episode of this series with one of these topics: shortcodes, search function or analytics with GoatCounter.\nRegards Sebastian\nVideo: Getting started with Hugo # This great video helps for the most points. The submodule was tricky and cost me a lot of time but now its all fine and working.\nOther useful sites and links # Transform yaml to toml Link Markdown Cheat Sheet Link Multilingual Menus Link Front matter Link PaperMod Features Link ","date":"6 December 2024","externalUrl":null,"permalink":"/posts/how-to-upload-and-publish-a-hugo-website/","section":"Posts","summary":"In the second part of this series we created some content for your free Hugo website and today we want to upload and publish this content to the internet for free.","title":"How to upload and publish a Hugo website","type":"posts"},{"content":"","date":"6 December 2024","externalUrl":null,"permalink":"/tags/papermod/","section":"Tags","summary":"","title":"PaperMod","type":"tags"},{"content":"","date":"6 de December de 2024","externalUrl":null,"permalink":"/es/tags/sitio-web/","section":"Tags","summary":"","title":"Sitio Web","type":"tags"},{"content":"","date":"6. December 2024","externalUrl":null,"permalink":"/de/tags/webseite/","section":"Tags","summary":"","title":"Webseite","type":"tags"},{"content":" A new era: Buying land with Bitcoin # In a world increasingly characterized by cryptocurrencies, El Paraiso Verde in Paraguay offers a pioneering opportunity:\nBuy properties with Bitcoin now. This unique community combines cutting-edge technology with sustainable living and makes buying real estate easier, faster and more independent than ever before.\nWhy invest here?\nEl Paraiso Verde is more than just a place - it was born out of a vision for freedom, independence and sustainable living.\nMy personal experience: The way to a new life # My journey with cryptocurrencies began in 2017 when I became aware of Bitcoin through my online marketing activities. It was an exciting year full of new experiences and I soon realized that Bitcoin is more than just a digital currency - it\u0026rsquo;s a way to fundamentally change your life.\nIn 2019, I decided to quit my permanent job, even though I had really enjoyed it. However, our new life concept no longer left room for our usual work.\nWe discovered El Paraiso Verde back in 2017 and after an information week in March 2018, we were convinced: this was going to be our new home.\nWe sold our condominium in Germany, our garden plot and later even our beloved motorhome after taking it on an unforgettable final trip through Europe.\nIn November 2019, we left our old life behind for good and moved directly to Paraguay with our young and small family to the wonderful El Paraiso Verde. Here we had a house built on our property and created our own little paradise.\nWithout Bitcoin, we would probably never have dared to take this step. Cryptocurrencies gave us the financial flexibility and confidence to try something new - and it was the best decision of our lives.\nEl Paraiso Verde: Freedom and community in Paraguay # El Paraiso Verde is the largest settlement project in South America with 14.23 square kilometers of land and 1711 plots with title, of which around 1100 can still be purchased. The rest have already been sold.\nWhen you purchase a piece of land, you receive an official land registry entry in Paraguay - a strong foundation for your investment.\nThe thriving community already includes over 100 completed houses, while almost 30 more are under construction (as of November 2024). People from all over the world come together here to freely shape their lives and fulfill their dreams.\nHighlights of this gated community:\nFreedom for families: Our children grow up in a safe, free environment, discover new things in nature every day and learn at least two languages. Individuality and respect: The only restriction is respect for others and their lives: “Do not do to others what you would not want done to yourself.” Sense of community: We have met many new friends who share our values and vision. Vision for the future: El Paraiso Verde embodies John Lennon\u0026rsquo;s “Imagine” a life of love, peace, respect and harmony. Step by step: How to buy your property with Bitcoin # Buying property with Bitcoin is easier than you think:\nContact us: Get in touch with the administration of El Paraiso Verde to find out about available plots and prices. Use the following contact form. Agreement: The purchase price is converted into Bitcoin and fixed by contract. Payment: Transfer the amount securely via your crypto wallet. Confirmation: Once the payment is completed, the purchase agreement is finalized and the property is officially transferred. The community supports you during the entire process to ensure that everything runs smoothly.\nStart now: Your dream property is already waiting for you # For us, Bitcoin was the key to a new life that offers us freedom, personal development and a sustainable future.\nEl Paraiso Verde is not only our new home, but also the place where we were able to create our own paradise - with the help of cryptocurrencies and, of course, a lot of sweat and tears.\nWould you like to take this step for yourself? Get in touch today to find out more about El Paraiso Verde and the buying process with Bitcoin.\nYour dream property in green paradise is waiting for you!\nUse the contact form below to get in touch directly with the administration of El Paraiso Verde. Get more information and find out which property is perfect for you. Your new life awaits - start now!\nMaybe we\u0026rsquo;ll see you soon in El Paraiso Verde ❤️\nBest regards Sebastian\nContact form # Click here for the Legal Notice! ","date":"1 December 2024","externalUrl":null,"permalink":"/posts/buying_land_in_el_paraiso_verde_with_bitcoin-a_new_era_of_investment/","section":"Posts","summary":"In a world increasingly characterized by cryptocurrencies, El Paraiso Verde in Paraguay offers a pioneering opportunity: Buying land with Bitcoin now.","title":"Buying land in El Paraiso Verde with Bitcoin - a new era of investment","type":"posts"},{"content":"","date":"1 de December de 2024","externalUrl":null,"permalink":"/es/tags/criptomoneda/","section":"Tags","summary":"","title":"Criptomoneda","type":"tags"},{"content":"","date":"1 de December de 2024","externalUrl":null,"permalink":"/es/tags/emigrar/","section":"Tags","summary":"","title":"Emigrar","type":"tags"},{"content":"","date":"1 December 2024","externalUrl":null,"permalink":"/tags/emigrate/","section":"Tags","summary":"","title":"Emigrate","type":"tags"},{"content":"","date":"1 de December de 2024","externalUrl":null,"permalink":"/es/tags/finanzas/","section":"Tags","summary":"","title":"Finanzas","type":"tags"},{"content":"","date":"1 de December de 2024","externalUrl":null,"permalink":"/es/tags/propiedad/","section":"Tags","summary":"","title":"Propiedad","type":"tags"},{"content":"","date":"25 August 2024","externalUrl":null,"permalink":"/tags/mixpost/","section":"Tags","summary":"","title":"Mixpost","type":"tags"},{"content":"I had the idea to simplify my social media engagement but without paying a lot of money or even monthly subscription fees. I found Mixpost as a self-hosted social media management solution. Therefore I set this hole thing up and tested the last days. Today I want to share my experience with Mixpost on a local machine at my home in Paraguay.\nThe installation is easy to handle with docker containers. First I tried to install Mixpost on my Synology NAS because normally docker containers run within Synology Container Manager but Mixpost didn\u0026rsquo;t.\nThere was an issue with the MySQL database container. Because a NAS installation is not supported I created a Virtual Machine with Ubuntu on my Mac Studio and installed the docker environment there.\nI did the same setup again and it worked immediately. But it was not perfect and I had to make some improvements and manual settings for my requirements.\nI also needed a new domain name and external access from the Internet. I am not able to forwarding some ports at my location but I found other possibilities and it worked for me. I will show you exactly what I did.\nWhat are my minimum requirements? # Mixpost running on a local machine Later migrate to a local server No limits or monthly subscription fees Connect to most popular social media accounts Domain name with external access Domain name with internal access Secure HTTPS for all connections Easy database backup and restore Easy to move or use another server How to install Mixpost # The Mixpost Documentation is very helpful when you install Mixpost on a Linux machine with docker. I started with the Mixpost Lite free version. Yes, the Mixpost Pro version will cost some one-time payment but I think it\u0026rsquo;s worth.\nGetting started with the Docker installation after I set up my Ubuntu virtual machine and connected via SSH in my terminal. I just followed the five simple steps in the documentation to install Docker and Mixpost on my local virtual machine.\nI never used traefik before and it was a little bit confuse for me but now it\u0026rsquo;s ok and works fine.\nMy setup files for the docker containers # At the moment my docker-compose.yml file looks like this:\nversion: \u0026#39;3.1\u0026#39; services: traefik: image: \u0026#34;traefik\u0026#34; restart: unless-stopped command: - \u0026#34;--api=true\u0026#34; - \u0026#34;--api.insecure=true\u0026#34; - \u0026#34;--providers.docker=true\u0026#34; - \u0026#34;--providers.docker.exposedbydefault=false\u0026#34; - \u0026#34;--entrypoints.web.address=:80\u0026#34; - \u0026#34;--entrypoints.web.http.redirections.entryPoint.to=websecure\u0026#34; - \u0026#34;--entrypoints.web.http.redirections.entrypoint.scheme=https\u0026#34; - \u0026#34;--entrypoints.websecure.address=:443\u0026#34; - \u0026#34;--providers.file.directory=/etc/traefik/dynamic\u0026#34; # for dynamic configuration - \u0026#34;--providers.file.watch=true\u0026#34; # for dynamic configuration ports: - \u0026#34;80:80\u0026#34; - \u0026#34;443:443\u0026#34; # - \u0026#34;8080:8080\u0026#34; # traefik dashboard disabled volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # Mount the dynamic configuration - ./certs-traefik.yml:/etc/traefik/dynamic/certs-traefik.yml # Mount the directory containing the certs for mixpost.lan - ../certs:/etc/certs/ mixpost: image: inovector/mixpost:latest env_file: - .env ports: - \u0026#34;127.0.0.1:9000:80\u0026#34; labels: - traefik.enable=true - traefik.http.routers.mixpost.rule=Host(`${APP_DOMAIN}`) || Host(`${APP_DOMAIN_WEB}`) - traefik.http.routers.mixpost.tls=true - traefik.http.routers.mixpost.entrypoints=web,websecure - traefik.http.routers.mixpost.tls.certresolver=mytlschallenge - traefik.http.middlewares.mixpost.headers.SSLRedirect=true - traefik.http.middlewares.mixpost.headers.STSSeconds=315360000 - traefik.http.middlewares.mixpost.headers.browserXSSFilter=true - traefik.http.middlewares.mixpost.headers.contentTypeNosniff=true - traefik.http.middlewares.mixpost.headers.forceSTSHeader=true - traefik.http.middlewares.mixpost.headers.SSLHost=`${APP_DOMAIN}` - traefik.http.middlewares.mixpost.headers.STSIncludeSubdomains=true - traefik.http.middlewares.mixpost.headers.STSPreload=true - traefik.http.routers.mixpost.middlewares=mixpost@docker volumes: - storage:/var/www/html/storage/app - logs:/var/www/html/storage/logs depends_on: - mysql - redis restart: unless-stopped mysql: image: \u0026#39;mysql/mysql-server:8.0\u0026#39; environment: MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - \u0026#39;mysql:/var/lib/mysql\u0026#39; healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;mysqladmin\u0026#34;, \u0026#34;ping\u0026#34;, \u0026#34;-p ${DB_PASSWORD}\u0026#34;] retries: 3 timeout: 5s restart: unless-stopped redis: image: \u0026#39;redis:latest\u0026#39; command: redis-server --appendonly yes --replica-read-only no volumes: - \u0026#39;redis:/data\u0026#39; healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;redis-cli\u0026#34;, \u0026#34;ping\u0026#34;] retries: 3 timeout: 5s restart: unless-stopped volumes: traefik_data: driver: local mysql: driver: local redis: driver: local storage: driver: local logs: driver: local I did some changes for the encryption because my installation is local and I can\u0026rsquo;t use letsencrypt. I deleted the config for letsencrypt at the traefik container and used a dynamic configuration instead.\nThen I am able to install my own certificates and mount the volumes for dynamic configuration and my cert with key files.\nI wrote a blog post in the past and described how I sign my own SSL certificates with OpenSSL for local web services.\nAt the Mixpost container I also added a second Domain for external access. So APP_DOMAIN is my local domain and APP_DOMAIN_WEB is my external domain.\nMy .env file:\n# The name of your application. APP_NAME=Mixpost # Key used to encrypt and decrypt sensitive data. Generate this using the following tool: # https://mixpost.app/tools/encryption-key-generator APP_KEY=keyfrommixpostwebsite # Debug mode setting. Set to `false` for production environments. APP_DEBUG=false # Your app\u0026#39;s domain or subdomain, without the \u0026#39;http://\u0026#39; or \u0026#39;https://\u0026#39; prefix. APP_DOMAIN=domain.local APP_DOMAIN_WEB=external.domain.com # Full application URL is automatically configured; no modification required. APP_URL=https://${APP_DOMAIN} # MySQL connection setup. DB_DATABASE=mixpost_db DB_USERNAME=mixpost_user DB_PASSWORD=astrongpassword # Specify the email address to be used for SSL certificate registration and notifications. SSL_EMAIL=myemal@gmail.com Here I only added a new variable for my external domain name.\nMy certs-traefik.yml file:\ntls: certificates: - certFile: /etc/certs/mixpost.lan.crt keyFile: /etc/certs/mixpost.lan.key I am using my own self-signed SSL certificates and therefore I included the .crt and .key file to the traefik container.\nWith this setup I am able to access the Mixpost dashboard with my local domain and HTTPS works with my self-signed certificate. Now what I had to change for external access?\nCloudflare Zero Trust Tunnel # First I connected my new domain with Cloudflare and created a tunnel to route to my local Mixpost dashboard. I also installed the connector on my virtual machine and the setup was really easy with only one docker container more.\nSSL certificates are automatically configured from Cloudflare and the HTTPS connection works, if I said to Cloudflare to ignore the local certificate.\nNow my local Mixpost dashboard is reachable about the internet and I can configure the social media accounts in the next step.\nConfigure Social Media accounts # In the self-hosted Mixpost Lite version only connections with Facebook Pages, X and Mastodon accounts are possible to use. In the Docs are guides for third party services described and easy to follow.\nI configured all possible connections with my social media accounts and tested a few posts. Single posts and multi posts using three platforms at the same time and all worked as aspected. It\u0026rsquo;s allowed to create different versions in one post and that\u0026rsquo;s nice because X only allows 280 characters and others 500 or 5000 characters.\nI also want to use Youtube, TikTok, Instagram and Pinterest with Mixpost. Therefore I have to buy the Pro license. I will do this later.\nBackup the MySQL database # I backuped the database with following command:\ndocker exec CONTAINERNAME /usr/bin/mysqldump -u root --password=ROOTPASSWORD DATABASE \u0026gt; backup.sql or same but compressed with this command:\ndocker exec CONTAINERNAME /usr/bin/mysqldump -u root --password=ROOTPASSWORD DATABASE | gzip \u0026gt; backup.sql.gz Tip: Save the .sql or .sql.gz backup file on a secure place!\nRestore the MySQL database # To restore the database use following command:\ncat backup.sql | docker exec -i CONTAINERNAME /usr/bin/mysql -u root --password=ROOTPASSWORD DATABASENAME or if compressed than this command:\nzcat backup.sql.gz | docker exec -i CONTAINERNAME /usr/bin/mysql -u root --password=ROOTPASSWORD DATABASENAME Whats next? # Next I want to create a new virtual machine and restore the Mixpost installation to prove if everything works as aspected.\nThen I will buy the Pro version and upgrade my local installation.\nLater I will move to another local server and run my Mixpost installation as a productive application and keep posting on different social media accounts with Mixpost.\nIf you have any questions please let me know in the comments.\nRegards\nSebastian\n","date":"25 August 2024","externalUrl":null,"permalink":"/posts/self-hosted-social-media-management-with-mixpost/","section":"Posts","summary":"I had the idea to simplify my social media engagement but without paying a lot of money or even monthly subscription fees. I found Mixpost as a self-hosted social media management solution. Today I share my experience.","title":"Self-hosted Social Media Management with Mixpost","type":"posts"},{"content":"","date":"25 August 2024","externalUrl":null,"permalink":"/tags/simple-life/","section":"Tags","summary":"","title":"Simple Life","type":"tags"},{"content":"","date":"25 August 2024","externalUrl":null,"permalink":"/tags/social-media/","section":"Tags","summary":"","title":"Social Media","type":"tags"},{"content":"In the first part of this series we installed our Hugo website with the PaperMod theme locally on our computer and configured everything so that we are now be able to add some content to our new website.\nToday I\u0026rsquo;ll show you how to create this content, how to add a menu, tags and categories and how to make some special settings.\nCreate content for your new website # File structure explained # The folder content is for website content like new sites or blogposts.\nThe folders layouts and assets are for overwrite the standard layout settings of the installed theme folder. For changes copy the file from the theme layouts or assets folder in the hugo layouts or assets folder and overwrite it there.\nIn our case this is the PaperMod theme and we don\u0026rsquo;t make some changes at the /themes/PaperMod folder. Instead we copy the files to our layouts or assets folder and change the files there. This will automatically overwrite the standard layout settings if we deploy our website.\nThe folder static is for all static assets like images and our language files are stored in the i18n folder.\nIf we once started the hugo server we will also find a public folder with all the html and css files from our website to review in the browser.\nCreate the first blogpost # To create a blogpost on the Hugo website go to the terminal and type:\nhugo new posts/first.md It\u0026rsquo;s important to be in the root website folder. In my case the folder sebastianzehner but later I renamed this folder to blog.\nBack in Visual Studio Code open the new first.md file to edit. The file extension .md stands for Markdown.\nHow to write and format # Use the Markdown Basic Syntax to write and format your sites and blogposts. Here are some links for more information:\nMarkdown Basic Syntax Content Management PaperMod Features This is one option to create a new post by using the command line.\nAnother option is directly in Visual Studio Code and create a new file e.g. second.md in the editor. It’s an empty file, so after creating copy or write some content to the new file and save.\nAlso Visual Studio Code is only one option more to use an editor. You can still use any other editor you like.\nI started with Visual Studio Code but later switched to Neovim and made some customizations for a nice and nerdy developer setup and I like it.\nMaybe I will write a blogpost about Neovim later on.\nCreate menus # Open the hugo.toml file and add some code to create the menu.\nHere one example for a simple menu structure:\n[menus] [[menus.main]] name = \u0026#39;Products\u0026#39; pageRef = \u0026#39;/products\u0026#39; weight = 10 [[menus.main]] name = \u0026#39;Hardware\u0026#39; pageRef = \u0026#39;/products/hardware\u0026#39; parent = \u0026#39;Products\u0026#39; weight = 1 [[menus.main]] name = \u0026#39;Software\u0026#39; pageRef = \u0026#39;/products/software\u0026#39; parent = \u0026#39;Products\u0026#39; weight = 2 [[menus.main]] name = \u0026#39;Services\u0026#39; pageRef = \u0026#39;/services\u0026#39; weight = 20 [[menus.main]] name = \u0026#39;Hugo\u0026#39; pre = \u0026#39;\u0026lt;i class=\u0026#34;fa fa-heart\u0026#34;\u0026gt;\u0026lt;/i\u0026gt;\u0026#39; url = \u0026#39;https://gohugo.io/\u0026#39; weight = 30 [menus.main.params] rel = \u0026#39;external\u0026#39; I am using a multilingual menu structure. This is an example with my blog menu structure:\ndefaultContentLanguage = \u0026#39;en\u0026#39; defaultContentLanguageInSubdir = true [languages] [languages.en] languageCode = \u0026#39;en-US\u0026#39; languageName = \u0026#39;English\u0026#39; weight = 1 [languages.en.menus] [[languages.en.menus.main]] name = \u0026#39;Home\u0026#39; pageRef = \u0026#39;/\u0026#39; weight = 10 [[languages.en.menus.main]] identifier = \u0026#39;categories\u0026#39; name = \u0026#39;Categories\u0026#39; pageRef = \u0026#39;/categories/\u0026#39; weight = 20 [[languages.en.menus.main]] identifier = \u0026#39;tags\u0026#39; name = \u0026#39;Tags\u0026#39; pageRef = \u0026#39;/tags/\u0026#39; weight = 30 [[languages.en.menus.main]] identifier = \u0026#39;archives\u0026#39; name = \u0026#39;Archives\u0026#39; pageRef = \u0026#39;/archives/\u0026#39; weight = 40 [languages.de] languageCode = \u0026#39;de-DE\u0026#39; languageName = \u0026#39;Deutsch\u0026#39; weight = 2 [languages.de.menus] [[languages.de.menus.main]] name = \u0026#39;Start\u0026#39; pageRef = \u0026#39;/\u0026#39; weight = 10 [[languages.de.menus.main]] identifier = \u0026#39;categories\u0026#39; name = \u0026#39;Kategorien\u0026#39; pageRef = \u0026#39;/categories/\u0026#39; weight = 20 [[languages.de.menus.main]] identifier = \u0026#39;tags\u0026#39; name = \u0026#39;Tags\u0026#39; pageRef = \u0026#39;/tags/\u0026#39; weight = 30 [[languages.de.menus.main]] identifier = \u0026#39;archives\u0026#39; name = \u0026#39;Archiv\u0026#39; pageRef = \u0026#39;/archives/\u0026#39; weight = 40 This is from the beginning. Later I added Spanish as well and changed some menus and settings.\nAdd tags and categories # The tags and categories are set in the front matter of every post or site. Example:\ntags = [\u0026#39;Hugo\u0026#39;, \u0026#39;Website\u0026#39;, \u0026#39;PaperMod\u0026#39;] categories = [\u0026#39;Tech\u0026#39;] It\u0026rsquo;s very important to use only one category for each site or blogpost. You can use more different tags instead. Usually I am using one category and three tags within a post or site.\nIf you also use the menus categories or tags like me this is useful to structure your blog and the visitors could find and sort the sites for their respective interessts.\nSome more special settings # If you want to show BreadCrumbs, ShareButtons, ReadingTime or PostNavLinks on the website. Add this to your hugo.toml file:\n[params] ShowBreadCrumbs = true ShowShareButtons = true ShowReadingTime = true ShowPostNavLinks = true I am using the Home-Info Mode from the PaperMod theme and added this to my hugo.toml file. I also added some social media icons and links like Facebook and Youtube for example:\n[params.homeInfoParams] title = \u0026#39;Hello my friend...\u0026#39; content = \u0026#39;Welcome to my blog. Here you will find a lot of cool information about a lot of cool stuff.\u0026#39; [[params.socialIcons]] name = \u0026#39;facebook\u0026#39; url = \u0026#39;https://www.facebook.com/yourfacebook\u0026#39; [[params.socialIcons]] name = \u0026#39;youtube\u0026#39; url = \u0026#39;https://www.youtube.com/@youryoutube\u0026#39; Now we did some basic configuration and added some content to our new website. Next step is to deploy and publish our new website to the internet.\nIn the next blogpost I will show you how I did this with GitHub and Netlify for free. Stay tuned and see you soon.\nRegards\nSebastian\n","date":"13 August 2024","externalUrl":null,"permalink":"/posts/how-to-create-content-for-your-free-hugo-website/","section":"Posts","summary":"Today I will show you how to create content with a Hugo website, how to add a menu, tags and categories and how to make some special settings.","title":"How to create content for your free Hugo website","type":"posts"},{"content":"","date":"31 de July de 2024","externalUrl":null,"permalink":"/es/tags/certificados/","section":"Tags","summary":"","title":"Certificados","type":"tags"},{"content":"","date":"31 July 2024","externalUrl":null,"permalink":"/tags/certificates/","section":"Tags","summary":"","title":"Certificates","type":"tags"},{"content":"I am documenting how we can create self-signed SSL certificates and use them securely on the local network. I have installed a local web server in my Homelab on an older Raspberry Pi and would like these websites to display a secure connection via HTTPS in the browser.\nThis was configured once with Apache2 but also with a Lighttpd server, where my Pi-Hole installation runs. The Pi-Hole Admin Dashboard as well as my intranet website on Apache2 are now securely accessible via HTTPS. How we get all this configured is described in the following documentation.\nWe start with the creation of SSL certificates and use them to secure our web service. The main reason I looked into this in the first place was the fact that my browser was displaying \u0026ldquo;Not secure\u0026rdquo; with an exclamation mark and I didn\u0026rsquo;t like that.\nWe fixed this today and then, after all the necessary configurations, we have a secure connection with the browser to the web server by using a valid and self-signed certificate.\nWhat do we need for the SSL certificates? # That depends on our server environment. I use a Raspberry Pi with Ubuntu 24.04 LTS and have set up access via SSH using the terminal on my Mac Studio. SSH access is important and we need OpenSSL installed on the server.\nWe use the openssl version command to check whether the OpenSSL application is already installed on our server and if not, this can be easily done with the following two commands. By the way, I am using OpenSSL version 3.0.13 from January 30, 2024.\nsudo apt-get update sudo apt-get install openssl We have thus created the necessary requirements to start with our own certificates.\nOur own SSL certification authority for root certificates (root CA) # We not only need to install a certificate on our server, we also need to integrate the SSL root certificate on our client user computers in order to be able to check the trustworthiness of the server certificate and only then will a secure connection be displayed in the browser.\nIf I only install the certificate on the server, an invalid certificate or an insecure connection is still displayed on the end devices that want to access the web server via a browser.\nIn the end, I therefore also have to integrate the SSL root certificate on my Mac Studio so that the connection is displayed as secure and trustworthy. I\u0026rsquo;ll show you exactly how to do that on MacOS at the very end. I\u0026rsquo;ll also show you how to do this on a Windows notebook, an Android smartphone and an Apple iPad with iOS or iPadOS.\nI only use one root certificate in my local network and therefore only have to integrate this certificate on the relevant end devices. I use this root certificate to create all other certificates for my servers. For now, however, only one for the web server and the Pi-Hole installation on my Raspberry Pi. Now let\u0026rsquo;s start with the main work. Let\u0026rsquo;s go \u0026#x1f680;\nWir erstellen den privaten (Root) Schlüssel # First, we need a private key on our certification authority. In my case, this is also the Raspberry Pi with its Ubuntu Linux installation. Basically, it doesn\u0026rsquo;t matter where we create our keys. I just do it all on the same server and haven\u0026rsquo;t noticed any problems so far.\nI am logged on to the Ubuntu server via SSH with my user and also have the option of obtaining root rights with the sudo command and a password. This is very important for the next steps.\nOf course you can also store the certificates somewhere else on the server, but I have stored them all in the /root/certs directory.\nTo do this, we first create our /certs directory with the command sudo mkdir /root/certs. We will then save all our certificates, keys and other files required for our certification authority there.\nWith the following command, we create an RSA key pair and save it in a file. A 2048-bit RSA key pair is created, which is encrypted with a password and Triple DES (DES3). We should keep this self-selected password safe and ideally save it in a password manager.\nsudo openssl genrsa -des3 -out /root/certs/myCA.key 2048 A brief explanation of this command: With openssl we call the main program for creating our keys and certificates. With genrsa we specify that an RSA key pair is to be generated.\nEncryption with a password is defined with -des3. We name the output with -out /root/certs/myCA.key and 2048 specifies the length of the key in bits. For example, we could also create a longer key with 4096.\nWith the command sudo ls -l /root/certs we should get the now saved myCA.key file displayed. The \u0026ldquo;CA\u0026rdquo; stands for \u0026ldquo;Certificate authority\u0026rdquo;. We will also use this key to create all further certificates for the local servers, so this key should already be encrypted.\nWe are asked for the password each time this key is used, but only when a new certificate is created and not when the website is accessed via HTTPS. I have of course used a complicated password and saved it in my password manager.\nConfiguration file for the root certificate # When creating a new root SSL certificate, certain parameters are requested, which you could of course enter directly during creation. With this configuration file, however, this happens automatically. I have created a root.cnf file for this purpose.\nsudo nano /root/certs/root.cnf I have added the following content:\n[ req ] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn x509_extensions = x509_ext [ dn ] C=PY ST=Caazapa L=El Paraiso Verde O=Sebastian Zehner OU=Homelab emailAddress=meine@email.com CN = pi-server.lan [ x509_ext ] basicConstraints = critical, CA:TRUE This file contains the configuration settings for the certificate and you can customize the fields within [ dn ] for your environment.\n(C) Country (ST) State (L) City (O) Organization (OU) Department of the organization (CN) Server Name I have configured Pi-Hole as a DHCP server and entered lan as the domain name. The Raspberry Pi server has the host name pi-server and therefore I have entered the domain pi-server.lan in CN. My local web server can also be called up in the browser with pi-server.lan.\nThe x509_ext extension is also important so that our certificate also works on smartphones with Android. From Android version 10, the CA:TRUE flag is required, otherwise the certificate cannot be imported onto the end devices. This also creates certificate version 3 and no longer version 1.\nFor this reason, I created a new root certificate and replaced it everywhere. Unfortunately, I only realized afterwards that Android was causing me problems here and spent a day searching for a solution. This documentation has already been updated and works.\nCreating the root certificate # We can now create the root certificate with the following command:\nsudo openssl req -x509 -new -nodes -key /root/certs/myCA.key -sha256 -days 825 -out /root/certs/myCAnew.pem -config /root/certs/root.cnf The password that we have previously defined and saved in a password manager is requested. We should now use the command sudo ls -l /root/certs to display the saved myCAnew.pem file.\nA brief explanation of this command: With openssl req we invoke the creation of a certificate request and with -x509 we create a self-signed certificate instead of creating a certificate request.\nWe want to create a new certificate, so we specify -new. With -nodes we prevent the root certificate from being encrypted so that we don\u0026rsquo;t have to enter a password every time we use it.\nWe specify our private key, which we created previously, with -key /root/certs/myCA.key. With -sha256 we define the hash algorithm which is used to sign the certificate. We specify the validity period of the certificate with -days 825 in days.\nEveryone can decide for themselves how long such a certificate should be valid and when they want to renew it. For iOS devices, I think these 825 days are the maximum so that the certificate is also accepted by the operating system. We specify the path to save the certificate with -out /root/certs/myCAnew.pem and use our previously created configuration file with -config /root/certs/root.cnf.\nSSL certificate for the server # We created a root certificate earlier, which we can now use to generate the SSL certificates for our local servers. However, a \u0026ldquo;Certificate Signing Request\u0026rdquo; file is required first, which we will now create in the next step.\nNormally, a private key is also created on the servers and this .csr file is created together with the configuration data, which can then be sent to the certification authority. The reason for this process is that no keys are sent via the Internet.\nAs we are in our own local network, this is not so important for us and we also create this file on our Raspberry Pi. At the moment, the certification authority and the server are one and the same Raspberry Pi anyway and everything happens locally.\nPrivate key for the server # We want to keep our /root/certs directory organized and therefore name the future certificate files after the corresponding [ CN ] server name. In our example, the following file will be named pi-server.lan.key. We generate the private key for our server with the following command:\nsudo openssl genrsa -out /root/certs/pi-server.lan.key 2048 The command is basically the same as for our previously created private key for the root certificate, but this time without -des3 for the Triple DES encryption with a password.\nConfiguration file for the web server # We again create a configuration file to define the parameters requested later directly in a file. In my case, since it is the same server, it also has the same server name. We use the following command for the client.cnf file:\nsudo nano /root/certs/client.cnf The content is as follows:\n[ req ] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn [ dn ] C=PY ST=Caazapa L=El Paraiso Verde O=Sebastian Zehner OU=Homelab emailAddress=meine@email.com CN = pi-server.lan Certificate Signing Request file (.csr) # We now have everything we need to create the request file. We use the same naming convention for our order and create the certificate signing request file with the following command:\nsudo openssl req -new -key /root/certs/pi-server.lan.key -out /root/certs/pi-server.lan.csr -config /root/certs/client.cnf A brief explanation of this command: With openssl req -new we create a new certificate signing request and with -key /root/certs/pi-server.lan.key we specify the name and path of the private key we want to use for the certificate signing request.\nWe specify the name and path of the certificate signing request to be created with -out /root/certs/pi-server.lan.csr. We specify our configuration file with -config /root/certs/client.cnf.\nWe have now done almost everything to create an SSL certificate for the web server and can now move on to the last step.\nSSL certificate for our web server # To finally be able to create our long-awaited SSL certificate for the web server, we first need an .ext file containing the settings and alternative DNS or IP addresses.\nConfiguration file for creating the web server certificate # We create the file with the following command:\nsudo nano /root/certs/pi-server.lan.ext We add the following content to this file:\nauthorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = pi-server.lan DNS.2 = pi.hole IP.1 = 192.168.7.20 We use this configuration file to define the properties that are used for our certificate. A brief explanation of the content of this file:\nWith authorityKeyIdentifier we define the keyid, which refers to the identifier of the public key in the certificate and is automatically generated from the public key. In addition, we define the issuer, which refers to the issuer of the certificate. This refers to the certification authority (CA) that signed the certificate.\nFor basicConstraints, we use CA:FALSE to specify that this certificate cannot be used as a CA certificate. This means that no other SSL certificates or certificate revocation lists can be signed with it.\nWith keyUsage we define the intended use of the key. In our case, the key is intended for digitalSignature, nonRepudiation, keyEncipherment and dataEncipherment.\nWith subjectAltName we define the alternative names for the reference of the certificate. In our case, the certificate should be valid for several domains or IP addresses, which we list under [ alt_names ].\nIt is important that the [ CN ] of the server is also listed so that there are no problems later when using the certificate.\nNow that we have created a configuration file with the properties for the certificate, we can create the actual SSL certificate for our web server. To do this, we enter the following command:\nsudo openssl x509 -req -in /root/certs/pi-server.lan.csr -CA /root/certs/myCAnew.pem -CAkey /root/certs/myCA.key -CAcreateserial -out /root/certs/pi-server.lan.crt -days 825 -sha256 -extfile /root/certs/pi-server.lan.ext When creating the certificate, the encryption password of the myCA.key, which we have saved in our password manager, is of course requested again.\nA brief explanation of this command: We use openssl x509 to manage X.509 certificates and with -req we say that we want to process a Certificate Signing Request (CSR). We specify this file with path and name as follows -in /root/certs/pi-server.lan.csr, as well as the CA certificate -CA /root/certs/myCAnew.pem and the private key -CAkey /root/certs/myCA.key.\nTo ensure that a serial number is also created for this certificate, we specify -CAcreateserial. We define the path and name of the file to which the certificate is to be written with -out /root/certs/pi-server.lan.crt.\nThe validity period in days is specified as -days 825 and the hash algorithm as -sha256. We define the file containing the extensions with -extfile /root/certs/pi-server.lan.ext so that they are included in the certificate.\nWith the command sudo ls -l /root/certs we should now see all the files that have already been generated. We have now created a certificate for our server, which we will now integrate into our web server.\nWe need to install the myCAnew.pem root certificate on the end devices that we want to use to access the web server\u0026rsquo;s website via the browser. In my first case, this is a Mac Studio with MacOS and we need to include this root certificate in the keychain so that the browser can identify the server\u0026rsquo;s certificate as trustworthy.\nCombining SSL certificate and key # Our web server running Pi-Hole uses the Lighttpd server and requires a combined .pem file consisting of the certificate and private key. To do this, we combine the two files once with the following command:\nsudo bash -c \u0026#39;cat /root/certs/pi-server.lan.crt /root/certs/pi-server.lan.key \u0026gt; /root/certs/pi-server.lan.combined.pem\u0026#39; Preparations for the Lighttpd installation # As already mentioned, I run Pi-Hole with the Lighttpd installation by default and we have to make preparations there so that HTTPS can work at all.\nWe first activate SSL support by creating an external.conf file on the Raspberry Pi with the following command:\nsudo nano /etc/lighttpd/conf-available/external.conf The content of this external configuration file looks as follows:\n$SERVER[\u0026#34;socket\u0026#34;] == \u0026#34;:443\u0026#34; { ssl.engine = \u0026#34;enable\u0026#34; ssl.pemfile = \u0026#34;/etc/ssl/private/pi-server.lan.combined.pem\u0026#34; } $SERVER[\u0026#34;socket\u0026#34;] == \u0026#34;:80\u0026#34; { $HTTP[\u0026#34;host\u0026#34;] =~ \u0026#34;(.*)\u0026#34; { url.redirect = ( \u0026#34;^/(.*)\u0026#34; =\u0026gt; \u0026#34;https://%1/$1\u0026#34; ) } } Here, the SSL engine is first activated with port 443 and the path to the SSL certificate is specified. Then a redirect is also set up so that all HTTP requests are redirected to HTTPS and a secure connection is always established with the SSL certificate.\nNext, we copy the previously assembled file with the certificate and private key to the correct location using the following command so that the Lighttpd or Apache2 server can access it:\nsudo cp /root/certs/pi-server.lan.combined.pem /etc/ssl/private/pi-server.lan.combined.pem I then determined the group membership ssl-cert for the file pi-server.lan.combined.pem with the following command:\nsudo chgrp ssl-cert /etc/ssl/private/pi-server.lan.combined.pem I have removed the read authorization for Others with the following command:\nsudo chmod o-r /etc/ssl/private/pi-server.lan.combined.pem The external.conf is loaded by default with the main configuration of Lighttpd and has the advantage that our configuration is retained when the main configuration is updated.\nFinally, we need to create a link, as Lighttpd looks in the /etc/lighttpd/conf-enabled directory for active configuration and we do this with the following command:\nsudo ln -s /etc/lighttpd/conf-available/external.conf /etc/lighttpd/conf-enabled/external.conf Checking the Lighttpd configurations # We can now check our configuration with the following command:\nlighttpd -t -f /etc/lighttpd/lighttpd.conf It may be displayed here that the \u0026ldquo;mod_openssl\u0026rdquo; is missing, otherwise it says Syntax OK. If the \u0026ldquo;mod_openssl\u0026rdquo; is missing, we can easily install it with the following command:\nsudo apt-get install lighttpd-mod-openssl Now we have to extend the Lighttpd configuration as follows:\nsudo nano /etc/lighttpd/lighttpd.conf The server modules are loaded at the very beginning and that\u0026rsquo;s how it should be. I have added the \u0026ldquo;mod_openssl\u0026rdquo; in the first place. The result now looks like this:\n„server.modules = ( \u0026#34;mod_openssl\u0026#34;, « this line was added \u0026#34;mod_indexfile\u0026#34;, \u0026#34;mod_access\u0026#34;, \u0026#34;mod_alias\u0026#34;, \u0026#34;mod_redirect\u0026#34;, ) After saving the configuration, the Lighttpd server must be restarted once and only then are all the changes active:\nsudo service lighttpd restart Preparations for the Apache2 installation # Here it is similar and we also need to activate a mod_ssl. We can activate this module with the following command:\nsudo a2enmod ssl The Apache2 installation has a default HTTPS configuration under /etc/apache2/sites-available/default-ssl.conf, which we can copy once with the following command:\nsudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/pi-server.lan-ssl.conf I enter my path to the certificate for this web server in the appropriate place. I use the same certificate in combination with the private key as for the Lighttpd server:\nSSLCertificateFile /etc/ssl/private/pi-server.lan.combined.pem I also changed the default port because port 443 for HTTPS is already used by Lighttpd and therefore Apache2 should use port 8443 for HTTPS so that there are no conflicts. I have also adjusted the DocumentRoot accordingly, but this depends on your server configuration and where all the files for the website are located.\n\u0026lt;VirtualHost *:8443\u0026gt; DocumentRoot /var/www/html/intranet With the following command we configure Apache2 for HTTPS with our configuration file:\nsudo a2ensite pi-server.lan.combined.conf To ensure that these changes are applied and activated, we restart the Apache2 server with the following command:\nsudo systemctl restart apache2.service Now we have also successfully configured the Apache2 web server for HTTPS and we should now take care of the end devices that get secure access to the web server.\nImporting the root certificate in MacOS # First, we need to copy the root certificate from the certificate authority, i.e. the Raspberry Pi, to my local Mac.\nSince I have saved all my certificates in /root/certs and I have no access there with my user account via ssh without sudo, I have to copy the certificate to my home directory on the Raspberry Pi first.\nTo do this, we use the following command, as I am already in my home directory:\nsudo cp /root/certs/myCAnew.pem . Now we can change the system. Since I have MacOS, I also use the terminal for the transfer there and also stay in my home directory. With the following command we copy the myCAnew.pem file from the Raspberry Pi to the Mac Studio:\nrsync -avzh user@pi-server.lan:myCAnew.pem . We then find our root certificate in the home directory on the Mac Studio and can add it to the keychain. To do this, we open the myCAnew.pem file with the keychain via the Finder and add it to the system.\nNow we just need to double-click on the certificate in the keychain. In my case, this is pi-server.lan and a new window opens with all the information about this certificate.\nAt the top, we open the Trust tab and select \u0026ldquo;Always trust\u0026rdquo; when using this certificate. We have to enter the password from the MacOS system again and the settings are applied.\nOur first end device is now fully configured and should classify the certificate from our web server as trustworthy and secure.\nThe integration of a root certificate can be slightly different for each end device and operating system. In any case, it worked perfectly on my Mac Studio with MacOS 14.5.\nImporting the root certificate into Windows # In Windows, a few more steps are required to install the root certificate. It is managed via the Microsoft Management Console, which we can open most easily with Windows + R and then by entering mmc.\nYou also have to set up the environment there first. To do this, we click on File and Add snap-in in the menu to select the certificates on the left-hand side and move them to the selected snap-ins on the right-hand side with Add. We select Computer account once and then Local computer, then click Finish and confirm with OK.\nWe now see Certificates (local computer) on the left below the console root and underneath we find the folder for Trusted root certification authorities. We right-click on it and select All tasks \u0026gt; Import from the menu.\nA wizard is started and we click once on Next and then on Browse to select our root certificate (myCAnew.pem). Then we click on Next and leave the certificate store for the Trusted root certification authorities and click on Next again.\nAn overview is displayed again and we can complete the import with Finish. The root certificate has now been successfully imported and we can access our web server via a browser and the connection is displayed as secure and the certificate is valid.\nImporting the root certificate into Android # The import in Android took me the most time and effort. As already described, there has been a change in the system in Android version 10 and the root certificates are no longer imported without the CA:TRUE flag. However, we have created and fulfilled the necessary requirements with our documentation.\nFor example, we can send our root certificate myCAnew.pem by e-mail and save it locally in Downloads. Then import it via the system security settings and the certificate can be used.\nThis link ultimately helped me to find a solution. The very simple process described there also works, but in the end I was a bit too insecure and I kept the more complex configuration as described here in my blog post.\nImporting the root certificate into iPadOS # On the Apple iPad, the myCAnew.pem certificate can be saved in iCloud and accessed from there. This will load a profile, which will be directly visible in the settings.\nThere we will be able to select \u0026ldquo;Profile loaded\u0026rdquo; and the information about the certificate will be displayed. If we are sure that this is our root certificate, we can tap Install in the top right-hand corner.\nThe iPad password is requested in order to install a root certificate. As soon as we have entered this, a warning appears that the installation will add this certificate to the \u0026ldquo;list of trusted certificates\u0026rdquo; on your iPad.\nWe want this and tap Install again. Then tap Profile Install again.\nThe certificate has now been successfully installed and a green checkmark appears next to Verified \u0026#x2705;\nWe can then tap on Done and now find the certificate as a Configuration profile under \u0026ldquo;General\u0026rdquo; and \u0026ldquo;VPN and device management\u0026rdquo; in the iPadOS settings. You can also remove the root certificate there at any time.\nNow we have to go to General \u0026raquo; Info \u0026raquo; Certificate trust settings in the settings and activate full trust for root certificates by flipping the switch next to our pi-server.lan. Another warning message appears and we confirm this with Next.\nWe have now successfully installed our root certificate in iPadOS 17.5.1 and now have a secure connection when we access our local web server via the browser.\nClosure and success # We have now installed all the required certificates and should be able to reach our web server with the corresponding domains or IP addresses and no longer receive a warning message.\nI can access my web pages accordingly as follows:\nhttps://pi.hole/ for our Pi-Hole web interface.\nhttps://pi-server.lan:8443 for our intranet.\nOf course you could have run both via a single web server, but I was already running my intranet with Apache2 and the Pi-Hole installation automatically installed the Lighttpd server together with php.\nI don\u0026rsquo;t use php at all for my intranet. I\u0026rsquo;ll probably uninstall Apache2 again at some point and run everything via the Lighttpd server.\nI hope this blog post helps you with your projects and serves as documentation for me in case I need to come back to it at some point because I\u0026rsquo;ve forgotten something.\nYou never know \u0026#x1f605;\nMaybe you notice anything that I could have done better or that I should perhaps change for safety reasons?\nPlease let me know in the comments. Thank you very much!\nBest regards Sebastian\nResources # The following links were helpful for my certification authority:\nMaking Pi-Hole HTTPS capable with Lighttpd - Link Sign SSL certificates yourself - Link Use Apache2 modules - Link Install MacOS certificates - Link Solving Android problems - Link Root certificate authority in the LAN - Link ","date":"31 July 2024","externalUrl":null,"permalink":"/posts/how-do-we-sign-our-ssl-certificates-with-openssl-for-local-web-services/","section":"Posts","summary":"In this blog post, I document how we create self-signed SSL certificates and use them securely in the local network. A local web server is running on an older Raspberry Pi in my Homelab.","title":"How we sign our SSL certificates with OpenSSL for local web services","type":"posts"},{"content":"","date":"31 July 2024","externalUrl":null,"permalink":"/tags/https/","section":"Tags","summary":"","title":"HTTPS","type":"tags"},{"content":"","date":"31 July 2024","externalUrl":null,"permalink":"/tags/lan/","section":"Tags","summary":"","title":"LAN","type":"tags"},{"content":"","date":"31 July 2024","externalUrl":null,"permalink":"/tags/openssl/","section":"Tags","summary":"","title":"OpenSSL","type":"tags"},{"content":"","date":"31. July 2024","externalUrl":null,"permalink":"/de/tags/zertifikate/","section":"Tags","summary":"","title":"Zertifikate","type":"tags"},{"content":"You\u0026rsquo;re here on my new minimalistic and free website. I built this website some weeks ago because I like it simple and replaced WordPress with Hugo and PaperMod Theme for my personal blog on the Internet. I moved some older blog posts and wrote some new posts on this platform. It\u0026rsquo;s really nice and I like this - it\u0026rsquo;s free and open source.\nToday I want to show you how to build a minimalistic and self-hosted website for free - how I did it. I installed Hugo on a Mac Studio but it works also on Linux or Windows machines. I like this so much that I will create a second Hugo site with the Smol Theme for my Intranet at home.\nBut now let\u0026rsquo;s start with the installation and first steps:\nDownload and install Visual Studio Code # I\u0026rsquo;m using Visual Studio Code on my Mac Studio to write an config all my stuff. This application is open source and works on other systems as well. I downloaded the Mac version and just unzipped the file and moved it to the application folder. That\u0026rsquo;s all and now we can run Visual Studio Code with one simple mouse click on the app.\nI also commit und sync my website with Visual Studio Code on GitHub.\nIt\u0026rsquo;s all for free and you can host your website directly on GitHub and create a URL or use Netlify as I do. Maybe I will tell you later how this works. First you can download Visual Studio Code here.\nInstall Homebrew on Mac # The easiest way to install Hugo is using the package manager Homebrew.\nBy the way this also works for other Linux machines. I copied the command from the website and pasted it to the terminal command line on my Mac. The installation was finished automatically. The Command Line Tools for Xcode will also be automatically installed with this command.\nAfter the installation is complete run two commands in your terminal to add Homebrew to your PATH. They are listet behind \u0026ldquo;next steps\u0026rdquo; in the terminal. You can copy \u0026amp; paste them.\nTo opting out the Homebrew analytics this command will prevent analytics from ever being sent:\nbrew analytics off\nCheck the installed version with:\nbrew -v\nIn my case: Homebrew 4.3.8\nInstall Hugo with the open-source package manager Homebrew # This installation is very easy. You can find some documentation here.\nAs I said before I used the package manager Homebrew for MacOS and installed the extended edition of Hugo with the following command in the terminal:\nbrew install hugo\nThat\u0026rsquo;s all - Hugo is now installed.\nCreate a new website with Hugo # On my system I created a new folder MyHugoWebsites in my Documents folder and switched to this folder in the command line.\nMy new website is called sebastianzehner and with the following command I created this new website:\nhugo new site sebastianzehner\nIt\u0026rsquo;s possible to create different config files like YAML or TOML. I used the standard configuration with the TOML config file.\nI found a website to transform YAML to TOML here. Sometimes it helps if you read a tutorial and they use different configuration files. I\u0026rsquo;m using always TOML for my sites.\nInstall a theme to Hugo # I decided to use the theme PaperMod as a fast, clean, responsive Hugo theme. You can find a documentation for the installation here.\nI used the following command in the terminal and switched to my website folder sebastianzehner:\ngit clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod –depth=1\nNow the PaperMod theme will be downloaded and saved to the local website theme folder.\nFor my local Intranet I will use the Smol theme. The installation process is the same. My Intranet is installed on a Raspberry Pi.\nHugo website configuration # In the Visual Studio Code searchbar: \u0026gt; install Shell Command: Install code command in PATH\nThen type in terminal: code . and Visual Studio Code will open with the installed website path.\nOpen hugo.toml and edit the configuration. I changed:\nbaseURL = \u0026#39;localhost\u0026#39; languageCode = \u0026#39;en-us\u0026#39; title = \u0026#39;My new Hugo website\u0026#39; theme = \u0026#39;PaperMod\u0026#39; After that type the following command in the terminal to start the local develop web server:\nhugo server\nThe result will be this: Web Server is available at //localhost:1313/\nNow my website ist running locally on my Mac Studio as a server service and updates all changes immediately. Press Ctrl+C to stop the server if needed or finished your work. That was also a very easy installation!\nIn my next blog post I will show you how to create content for your new website. How to add a menu, tags and categories, some special setting etc.\nKind regards\nSebastian\n","date":"22 July 2024","externalUrl":null,"permalink":"/posts/how-to-build-a-minimalistic-and-self-hosted-website-for-free/","section":"Posts","summary":"You’re here on my new minimalistic and free website. I built this website some weeks ago because I like it simple and replaced WordPress with Hugo and PaperMod Theme for my personal blog on the Internet.","title":"How to build a simple and self-hosted website for free","type":"posts"},{"content":"","date":"19 July 2024","externalUrl":null,"permalink":"/tags/domain/","section":"Tags","summary":"","title":"Domain","type":"tags"},{"content":"","date":"19 July 2024","externalUrl":null,"permalink":"/tags/hostinger/","section":"Tags","summary":"","title":"Hostinger","type":"tags"},{"content":"In today\u0026rsquo;s digital world, domains are an essential part of any website. But what if you have the flexibility to pay for your domain with cryptocurrency? In this blog post, I share my experience with Hostinger and why I can recommend this provider to you.\nMy experience with Hostinger # Ever since I registered my first domain with Hostinger, I have been impressed with the ease of use and variety of payment options. I recently renewed the term of my domain for 3 years and paid the fee with Tron (TRX). This was not only easy and fast, but also a cost-effective and convenient solution for me.\nMy domain sebastianzehner.com is of course registered via Hostinger and I have extensive DNS setting options there, so this domain will continue to work here with my free website configuration via Netlify with Hugo and the PaperMod theme. I only pay for the domain with an annual fee of $15.99 and can therefore run my personal blog on the internet.\nWhy Hostinger? # Cryptocurrency payments: Hostinger offers the ability to pay for domains and hosting services with various cryptocurrencies, including Bitcoin, Ethereum and Tron. This provides an additional layer of security and flexibility. User-friendliness: The platform is intuitive and easy to use for both beginners and experienced users. Customer support: Hostinger offers excellent 24/7 customer support, providing quick and competent help with questions and problems. Powerful features: From unlimited storage space to free SSL certificates and a high uptime guarantee, Hostinger offers everything you need for a successful online presence. How to pay for a domain with Tron? # Register: Visit the Hostinger website and register if you don\u0026rsquo;t have an account yet. Select domain: Search for your desired domain and add it to the shopping cart. Payment options: When paying, select the option “Cryptocurrency” and then Tron (TRX) or any other cryptocurrency. Complete payment: Follow the payment instructions and you are the owner of a new domain, paid for with Tron. I really like using the Tron network for such payments because they are cost-effective, secure and, above all, fast. You can also earn rewards on the Tron network through staking and voting. Further income can be earned by renting out energy. Maybe more about this in another blog post.\nMy conclusion # My experience with Hostinger was and is consistently positive. The ability to pay for domains and hosting services with cryptocurrencies is a big plus. If you are looking for a reliable and user-friendly domain and hosting provider, I can recommend Hostinger without any restrictions.\nClick here to try Hostinger for yourself and benefit from the many advantages. Use this link to get a 20% discount at Hostinger.\nThe use of cryptocurrencies for everyday transactions is becoming increasingly popular. With providers like Hostinger supporting this trend, it\u0026rsquo;s becoming easier and safer for all of us to manage our website or personal blog. Try it out and see for yourself!\nBest regards\nSebastian\n","date":"19 July 2024","externalUrl":null,"permalink":"/posts/how-i-paid-for-my-domain-with-cryptocurrency/","section":"Posts","summary":"In today’s digital world, domains are an essential part of any website. But what if you have the flexibility to pay for your domain with cryptocurrency?","title":"How I paid for my domain with cryptocurrency and why I recommend Hostinger","type":"posts"},{"content":"","date":"19 July 2024","externalUrl":null,"permalink":"/tags/tron/","section":"Tags","summary":"","title":"Tron","type":"tags"},{"content":"You can subscribe to the newsletter here:\n","date":"13 July 2024","externalUrl":null,"permalink":"/newsletter/","section":"","summary":"Sign up for the free newsletter here.","title":"Newsletter","type":"page"},{"content":"","date":"10. July 2024","externalUrl":null,"permalink":"/de/tags/grundbuch/","section":"Tags","summary":"","title":"Grundbuch","type":"tags"},{"content":"","date":"10 July 2024","externalUrl":null,"permalink":"/tags/land-register/","section":"Tags","summary":"","title":"Land Register","type":"tags"},{"content":"","date":"10 de July de 2024","externalUrl":null,"permalink":"/es/tags/registro-de-la-propiedad/","section":"Tags","summary":"","title":"Registro De La Propiedad","type":"tags"},{"content":"After several years of rumors that we had no title and that we would never get a title for our property, I would like to go into more detail about our title today.\nHow did the procedure work? # We never doubted it ourselves and now actually have the title to our property in El Paraiso Verde in our own hands. Rumors usually don\u0026rsquo;t last long and then the truth comes out.\nIn our case, unfortunately, it took longer for us to show the titles and we could have been told so many times that the titles were coming and the process was ongoing. It\u0026rsquo;s difficult with some people, but how did it actually work out for us?\nWhen did we buy our property? # We found out about El Paraiso Verde online at the end of 2017 and contacted them. After two Skype calls, we signed up for an information week in March 2018 and bought a property at the same time.\nWe had never been to Paraguay before and we didn\u0026rsquo;t choose our property ourselves. It was allocated to us and at the time there were these new Anastacia Circle plots of 2500 square meters each. We simply bought one of these plots, but we could have changed plots on site.\nWhen we were there for the information week, we were unfortunately unable to view our property as there was no road access to it. All the roads in the settlement area had to be built first. We still had the option of changing the plot at any time.\nWe had transferred the amount in advance and there was no appointment with the notary. Originally, we would have only received rights of use to our property and that was exactly how it was intended at the time. That was fine for us because we already had a garden parcel with usage rights in Germany and it was even more expensive.\nDo we only have rights of use now? # As already written, this was the original plan and it was also in our first purchase contract. However, some people complained that El Paraiso Verde would not give us any titles for the properties and that we would therefore never own anything.\nSo at some point, the decision was made to divide up the entire settlement area and provide titles. However, this was an incredibly time-consuming process.\nWe found out about this new possibility in Germany. There was a newsletter from El Paraiso Verde and from then on there was also a new purchase agreement with the promise to transfer the title as soon as they were available.\nWhen we finally emigrated in November 2019, we still hadn\u0026rsquo;t seen our property. However, we were able to visit it now because there was a road leading to it. Wow, a big green field \u0026#x1f605;\nAt that time, there were no finished houses in the settlement area, only two opposite our property were under construction. We thought to ourselves that we could certainly create our own green paradise on any property here.\nThe size was perfect for us anyway and we certainly couldn\u0026rsquo;t say too much about the location yet, as it would only become clear in the future how El Paraiso Verde would develop with its settlers and where the next houses would be built.\nSo we went ahead with it. We wanted to keep this property and only then did we go to the notary and sign the new purchase contract, which included the commitment to transfer the title.\nThis was also fine for us, because we were confident that everything would be in order. Unfortunately, there were also many people who kept saying that this paper was not worth anything. Nevertheless, we started to build our house.\nThe division of the settlement area # There are currently around 1711 titles in El Paraiso Verde and many intermediate steps were necessary to get there in the first place. I\u0026rsquo;ll try to retell this from the past. Maybe I\u0026rsquo;ll find some older screenshots at some point and post them here.\nAt the time we signed the notarized purchase contract, the settlement area was still divided into three individually titled properties.\nBut that\u0026rsquo;s not all, because these three properties belong to different municipalities. One part belongs to Maciel and another part to Caazapá. The next step was to combine these three individual properties into one large property.\nThat alone took a very long time. The decision to merge the three properties into one was published on October 11, 2019, following a hearing on December 27, 2018 and a decision on December 28, 2018.\nIn the meantime, however, El Paraiso Verde has been able to work on its own plans, at least internally. There has been a settlement plan with the respective plots of land since the start of the project. This was continuously revised and optimized. Plots were merged or new settlements were planned and thus larger plots were divided into smaller plots, etc.\nAt some point after the pandemic, the necessary intermediate step was taken. The three individual properties with their respective padrón numbers were now merged into one large property with its own new padrón number.\nI\u0026rsquo;ll have to check if I can still find pictures of this somewhere. I don\u0026rsquo;t want to drag this out too long. In any case, the large property was then divided again into two separate properties and there were again new padrón numbers.\nThese are the sections A and B known today, one of them is the settlement area and the other is outside the settlement area with the pastures and Pira Tava is also part of it.\nIn July 2023, the Municipal Council of Maciel approved the procedure (administrative process) for the land registration of all settlers. However, the settlement area no longer has a Padrón number. Why is that?\nWhat is the difference between Cuentas Rurales and Cuentas Corrientes? # At this point, I would like to go into a little more detail about how the Catastro works in Paraguay and how the respective plots of land in the country are divided up. At least as I understand it, because I have been following this process a little more closely over the last two years.\nFundamentally, El Paraiso Verde is an urban development and therefore the settlement area has a current account (Cuentas Corrientes) with the national cadastre (Catastro) and not a Padrón number like the rural accounts (Cuentas Rurales).\nThis is the case for every city in Paraguay. You can recognize this by the special numbering of the properties and in the map at Catastro the properties of the cities have a different color.\nThe simple rural plots only have a Padrón number and are always shown in green on the Catastro map.\nHow is the Cuentas Corrientes numbered? # There are significantly more options here than with the rural accounts, which only have a Padrón number and can be accessed via the Departamento and Distrito. The Cuentas Corrientes can also be accessed via the Departamento and Distrito, but have a further subdivision to access a specific property. Instead of the Padrón number, there is Zona, Manzana, Lote, Piso/Nivel and Departamento/Salon.\nAs can be seen publicly on the Map of Catastro, the settlement area of El Paraiso Verde has the number 22-54-2 and the plot next to it with the pastures has the number 1246.\nThe entire settlement area therefore always has Zona 22, Manzana 54 and Lote 2. Piso/Nivel remains at 00 and the respective plots (sub-accounts) of the settlers can be called up with the corresponding number via Departamento/Salon.\nAfter we applied to the notary for our title and signed for the transfer together with Dr. Erwin Annau, both of our names were also registered with Catastro for our property.\nThe size of the property can also be seen and corresponds to the survey and the purchase contract.\nIt can also be seen that our property was updated/created at Catastro on 05.12.2023. Before that, it was not possible to transfer a title at all.\nThese are just the hurdles that have to be overcome and now everything is set up correctly and further titles are continuously being transferred. This is an incredibly big milestone that El Paraiso Verde has reached in 2024.\nDelivery of the title at the notary\u0026rsquo;s office # After we had signed our papers at the notary, it took another two months or so for the first titles to be issued. Sometime afterwards, I went back to Villarrica with Nicole and we picked up our titles there.\nHer title was also finished and we took another settler\u0026rsquo;s title with us and surprised him. Today, by the way, three more finished titles were picked up for and by settlers and so it goes on one after the other until everyone can hold their own title in their hands.\nTo come back to the first question. Yes, we have a title and the property is ours. The rumors have once again vanished into thin air.\nThe title wasn\u0026rsquo;t important to us at all, but now we\u0026rsquo;re still happy that we have it and everything is settled. It was a bit unpleasant for us that this pressure was built up with the titles, because everything supposedly took so long and the rumor mill naturally boiled over again.\nIs there a difference in the titles? # The question came up somewhere as to whether our titles are real at all or whether we have restricted titles, perhaps using paper that is too thin or other restrictions?\nI can say that I just showed our title to the public prosecutor\u0026rsquo;s office and if anyone believes that it is not real, they should clarify this elsewhere but please leave us in peace \u0026#x1f602;\nThere are of course differences in the various titles. Some have a rural property somewhere in Paraguay with a Padrón number and no common areas. This is perhaps the easiest way to get a title here in Paraguay.\nHere we have an urban land that belongs to a community of owners and the ownership must be regulated according to the respective private property and the remaining communal areas on the entire property of the settlement area.\nThis is made possible by the so-called horizontal property (Propiedad Horizontal), which refers to a set of rules that regulate the division and organization of different properties as a result of the separation of a common property.\nHorizontal property itself is not a specific piece of land, but a system that regulates the way in which properties are divided and the relationship between the owners of the private property and the common property separated from a piece of land. Horizontal ownership enables the organization of co-owners and the maintenance of common property. Source\nSo there is a suitable title for every property, as prescribed by Paraguayan law. You just have to deal with it a bit, which of course takes time, but here you have at least received a small summary from me.\nYou can watch a YouTube video from me here. I flew over El Paraiso Verde with my drone and there are some nice pictures from a bird\u0026rsquo;s eye view of the settlement area in April 2024.\nCurrent status of the titles in El Paraiso Verde # Since July 1, 2024, anyone who buys a titled property in El Paraiso Verde will receive the title without a waiting period. It is no longer necessary to enter the country or attend an information week to purchase a property and get a title. You can buy a property without coming to El Paraiso Verde.\nThis gives everyone who is looking for a plan B NOW in the event of an international crisis the opportunity to travel to a safe place and live there if the worst comes to the worst.\nWe have already been through the experiences that almost EVERY emigrant anywhere in the world has to go through. The founders Dr. Erwin and Sylvia Annau are here and will build your plan B so that you have a place to live when your current home is no longer worth living in.\nThis solution became necessary because such a crisis can come much faster than applicants can be turned into settlers via the information week.\nHowever, we also love living in El Paraiso Verde regardless of this and have been glad to have built our own green paradise here since November 2019. Take a look at my other blog posts here, for example how we started building our house in El Paraiso Verde.\nYou can contact a consultant via the El Paraiso Verde website!\nBest regards\nSebastian\n","date":"10 July 2024","externalUrl":null,"permalink":"/posts/title-in-el-paraiso-verde/","section":"Posts","summary":"After several years of rumors that we had no title and that we would never get a title for our property, I would like to go into more detail about our title today.","title":"Title in El Paraiso Verde","type":"posts"},{"content":" Less stuff and more plain text - make it simple and efficient # Yesterday, I thought that something has to change with my old website. I had a wordpress blog since years and my last post was written one year ago. I did more updates and bugfixes in this time than writing new interesting posts. Above all it cost money and time to operate. My first idea was to go back to the 90s. So what\u0026rsquo;s about a simple plain text website? Let the focus return to the plain text in a post. In a world full of web apps, cookies and tracking tools, social media and multimedia distraction it\u0026rsquo;s well to know that there are still some websites online which use simple plain text.\nI searched the internet after templates and how to build a simple and minimalistic website with plain text nowadays. I found some interesting websites and memories came up because I know these websites from the past. But I also want to post some pictures or embed a youtube video on my space. I decided that it should be a modern and simple website just right for today.\nHow to build a new modern website for free? # How to build this website without a software? Use the simple text editor or what? How to manage the simplicity in a modern technical way? I know it and I will share this knowledge with you in the next post on this website. I am using right now Hugo with the PaperMod theme and this all is completely free. It costs me $0 because Hugo and PaperMod are open source and free to download. Even the webhosting is free and I will show you how this works. Only if you want to use your own domain name then you have to pay something for the domain.\nI am happy with this decision because now I have a new modern and minimalistic website for free and it\u0026rsquo;s my own project to develop. I want to write more posts in the future and I want to merge the posts from my old wordpress blog to this new website. Sure only the most popular posts and I want to translate all posts from German to English because I also decided to write in English when I use my new website. I want to leave my comfort zone again and learn or improve other languages. I think that I will also translate this website to Spanish because I live in Paraguay since 2019 and here the most locals speak Spanish. This website was entirely build in only one single day. It\u0026rsquo;s that simple and I like how to use it.\nWhat\u0026rsquo;s up next on this new website? # I have much more ideas to develop this website with a little more technical stuff but keep it simple everytime. In future I will write exactly about this technical stuff and other projects like Ai content or our off-grid solar system which I have to build in the next few month. Also I will write furthermore about our beautiful life in Paraguay. We live in a secure Gated Community called El Paraiso Verde. Be sure I am happy to share all my knowledge with the people in the world wide web. This is enough for today I think \u0026#x1f601;\nRegards\nSebastian\n","date":"8 July 2024","externalUrl":null,"permalink":"/posts/my-new-minimalistic-and-free-website/","section":"Posts","summary":"Yesterday, I thought that something has to change with my old website. I had a wordpress blog since years and my last post was written one year ago.","title":"My new minimalistic and free website","type":"posts"},{"content":"","date":"8 de July de 2024","externalUrl":null,"permalink":"/es/tags/vida-sencilla/","section":"Tags","summary":"","title":"Vida Sencilla","type":"tags"},{"content":"","date":"26 March 2023","externalUrl":null,"permalink":"/tags/finance/","section":"Tags","summary":"","title":"Finance","type":"tags"},{"content":" What chances do we still have? # We’re doing very well here. In Paraguay, the temperatures are summer-like, which makes swimming an enjoyable activity. We just had a heavy rainstorm, and it has made our property in El Paraiso Verde even greener.\nWe tend to easily forget what’s going on in the outside world. We’ve forgotten our concerns about the banking system, since we managed to save all our wealth in time, well over four years ago, before Europe went into chaos. For more than two years now, we’ve been living in our own house on this property, planting trees, and taking care of our growing vegetable garden.\nSome of our neighbors even built one or three additional apartments on their properties and now live comfortably off the rent income from all the units in their complexes, which are 100% rented out. Having both a house and apartments as sources of income—what more could one possibly want?\nI don’t want to address all the negative headlines in the media with my blog post, because I prefer to think positively. After all, this is also my blog, and I aim to highlight the positive and happy aspects of life. Only in this way can we look forward to the future with peace of mind.\nWe don’t need to worry about what will happen in three to five years. We’re secure and live in a wonderful community where we support each other. We have almost no overhead costs, as we live in our own house on our own land without any loans; we pay for everything out of our own pocket. Therefore, there’s no pressure to pay monthly mortgage payments to a bank.\nMost of our money is spent on food, and we earn it through online work, as well as here in Paraguay. We’re always trying to grow more of our own crops to become more independent in that area as well. It’s important for us to have the option to work, but not to feel like we have to. If we want to take a break, we do; and if we want to go somewhere, we just go.\nEmigrating to Paraguay: A Gated Community # In the past few years, I’ve participated in numerous Skype conversations. During these conversations, I helped immigrants from Germany, Austria, Switzerland, and the United States to move to Paraguay. I really enjoyed doing this, and I’m even more delighted when they, just like us, are able to build a happy future within our safe community.\nUnfortunately, I also had to witness some sad stories in this process. It really took a lot of energy from me. Not always does immigration go as planned; sometimes family members disagree, the necessary funds are not available, or people simply lack the courage to pursue it. Everyone who makes it to us should be considered very lucky. Sometimes these situations touch me so deeply that I need a short break to regain my strength.\nFortunately, this works particularly well on our property. You just need to take a look at the garden to feel the energy immediately. What has changed over the past two years on our property, as well as in our entire residential area, is incredible. I am very happy and grateful for that.\nThe real estate market in Europe is declining # Unfortunately, I’ve repeatedly noticed that in Germany, it’s becoming much harder to sell a property at the desired price over time. Since mid-2020, the real estate market has been on the decline; many people are now only able to sell their properties for significantly lower prices than the peak market levels.\nWe were able to sell our property at a top price by the end of 2018 and immediately transferred our capital to Paraguay. A huge thank you to our wonderful real estate agents “The Hausers”! They presented our property extremely well and managed to sell it for a higher price than we had hoped for in a very short amount of time.\nToday, things probably wouldn’t be quite so easy, and we would have had to make some compromises. Fortunately, our funds arrived in Paraguay quickly and were waiting for us to get there. We didn’t arrive until November 2019 because we took a Long journey by camper as a farewell tour across Europe first.\nAt the beginning of 2020, we were able to start building our house in Paraguay. The further details of the process I have documented on my blog from here.\nAnother issue is the looming financial crisis—or has it already arrived? How safe is the money in our bank accounts? Not long ago, there were reports about the Silicon Valley Bank, and that’s no small bank; it was closed down due to insolvency. Subsequently, European banks also suffered significant losses in just one day. How can we protect our bank savings?\nStable capital investment in uncertain times # We have several options for how to participate in the world’s largest “Plan B” project, which represents the solution to the current crises. Six years of intensive work have gone into its development, and precisely at this moment, we have the solutions needed to protect the assets of vulnerable banks.\nSmooth transfer to Paraguay. Securing the property by owning a piece of land in our residential area. (A valuable property) Flexibility in the use of assets within the Settlement project for example: Your own piece of land with your own house, or a backup house (which can be rented out if needed)\u0026hellip; …or as long as you don’t yet live with us. Apartments: We just recently received 22 requests from people who wanted to stay there. We are looking for a long-term rental property. Arrangements in the economic operations of our settlement: Diversification in… Various types of income sources, ranging from agriculture and livestock farming to cutting-edge technologies (new energy generation, 3D printing for houses, houses and bricks made from compressed soil, etc.). In this context, returns of up to 8-12% per year are achieved; many people even obtain inflation-protected returns by renting out apartments and houses.\nYou’re probably wondering how to save your savings as well from the potential collapse of the banking system. Please watch the following video and then fill out the contact form to obtain more information. The link is located below the video. We will communicate with you personally.\nThe contact form for El Paraiso Verde can be found at here.\nIf you have any further questions, you can also feel free to contact me, and I would be happy to share with you our personal experiences. After all, we have been living happily in Paraguay, in El Paraiso Verde, since 2019.\nYou can also just start by subscribing to the newsletter from El Paraiso Verde at here.\nA property in our residential area, for your own use or to rent out, will protect your capital and offer returns on rental income that are several times higher than the usual, inflation-protected rates seen in Europe. We have taken the same precautions, and our children will thank us for it today – and in the future as well.\nFor everyone who hasn’t yet thought about moving abroad, building small houses in our residential area is an excellent investment. It also serves as a safe place to live in case the world outside becomes unsafe and uninhabitable.\nWe are very happy that we no longer have to worry about anything. We finished our homework on time and can now fully enjoy our lives today. You will hear from me or see me again soon; I am planning to make a new update video about the construction of our house in Paraguay.\nOnce again, something has changed on our property. Stay tuned for the next blog post! Until then, and who knows… maybe we’ll see each other soon in Paraguay, and I can show you our property in person.\nBest regards,\nSebastian\nPS: Read more about me in Profile.\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"26 March 2023","externalUrl":null,"permalink":"/posts/move-to-paraguay-the-impending-financial-crisis/","section":"Posts","summary":"We’re doing extremely well here. We have summer temperatures in Paraguay that make swimming irresistible. Just recently, we had a heavy rainstorm, which has made our property in Paraguay even greener.","title":"Move to Paraguay: The impending financial crisis","type":"posts"},{"content":"Welcome to my personal blog. My name is Sebastian Zehner and I am the founder and owner of sebastianzehner.com\nI created a blog in 2014 for the following reasons: At that time, I was looking for a change and other people with motivation who wanted to share ideas about making money online, were tired of their usual job or simply wanted more from their life.\nI was passionate about starting my lifestyle business at that time. I searched for help on the internet and found some interesting people and opportunities. At first I learned that you need your own blog and an automated marketing system to make money online.\nIt all seemed very exciting to me, so I started with a ready-to-use blog system, combined with a marketing training course from the United States. We even flew to Las Vegas in 2015 and participated in a live event. That was the starting point and the motivation for a new life. Over the years, I have continued to improve my skills and there have also been some positive changes. In 2016, I created my own blog with WordPress and since July 2024, this blog has changed. I no longer use WordPress but instead Hugo with the PaperMod theme. I have of course transferred the most popular blog articles from the older blog systems.\nIn 2016, my girlfriend at this time (now wife) and I still enjoyed driving our small caravan through Germany and Europe quite a lot. If we didn\u0026rsquo;t want to travel with the caravan, we could go to our small garden with a garden house. This was also a common project on which we had a lot of fun and spent our spare time.\nT@b 320 Offroad | Füssen T@b 320 Offroad | Cavallino Garden | Breisach Garden House | Breisach In the past, I wrote a few blog posts about our travels with the caravan, but also about our garden and how it was created. There was even a garden news series about it with 35 episodes.\nAt the beginning of 2015, our garden house was almost finished and we started to build the garden. However, I haven\u0026rsquo;t moved the posts older than 2019 to my new blog.\nCamping with caravan in Cavallino near Venice Our little T@b 320 off-road caravan Our garden house with completed patio roofing Our own garden on a private allotment site I would be glad if my story inspires you to find new methods to create a better life, to have more time for the people and things that are really important to you and to just do what you personally enjoy.\nBut before I tell you how I and our team make money online, I want to take the opportunity to tell you how I came to build an internet and lifestyle business and how I want to help and empower other people to do the same.\nHow did everything start? # I was born in Freiburg im Breisgau in 1983 and grew up in the Kaiserstuhl region. Even as a child, I had the feeling that the knowledge we were taught at school wouldn\u0026rsquo;t really help me in life. Nevertheless, I passed my secondary school and my professional training as a communications electronics technician specializing in information technology with a very good average grade.\nI was then offered a permanent position at the company where I successfully completed my professional training. I ended up working there for another six years until one day, overnight, it was announced that our entire division was being closed down and sold abroad. A few months later, we were transferred to a transfer company and I used this time to continue my further education. Successful people like to learn or learn new skills. I still take this to heart today.\nDuring this phase, I thought about what I wanted to do next as a professional. In short, I thought about becoming self-employed and started looking for the right business opportunity. As I came from the consumer electronics sector for development and customer support and my former work colleague was also looking for a new challenge, we came together and founded a GbR.\nSince then, our task has been to offer customers antenna systems and install them on site, and we have also offered and very successfully implemented IT solutions and building automation. Business was going really well, but after two years I realized that it couldn\u0026rsquo;t go on like this. We were working non-stop, day and night, even at weekends, and our manpower was always in demand. As soon as you have positioned yourself as an expert here, it becomes difficult to continue this with your own employees, as you always had to be on site yourself. I didn\u0026rsquo;t see any other option at the time and switched back to permanent employment and now worked in quality assurance at a medical technology company.\nOf course, I was aware that I would now earn much less and have a 40-hour week in which I would always have to be available for the company to do the tasks assigned to me in my employment contract.\nIf I were to continue doing this until retirement age, my future would probably look less relaxed because I just expect more from my life. That\u0026rsquo;s why I decided to go back to self-employment on a part-time basis, but this time to set up the business completely differently. I had previously read the book The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich by Timothy Ferriss, in which I learned about automating your own business for the first time.\nI was so fascinated by this that I wanted to follow the same path. But which business idea would fit in best? I would have to develop my own product and sell it. But what could I develop in the short time available and could I even find a product that would fit? It was clear to me that there had to be another solution for the time being.\nAs a result, I found a way that is professional and simple genius for me to build a business on the Internet in this day and age. The solutions are called affiliate marketing, internet marketing, video marketing, attraction marketing and blogging. All in all, a modern marketing strategy that makes it possible to build up several passive incomes without having to sell anything directly.\nWhen were the first successes? # So far, my lifestyle business has mainly been part-time and I still had my main job at a medical technology company in quality assurance. However, this was becoming increasingly unpleasant and stressful from time to time, mainly because of the poor working atmosphere. So, for the first time in my life, I quit a \u0026quot; safe\u0026quot; job without having another job. It was a big and unfamiliar step for me, but it felt really good and was important for my further development. I was almost ready to quit completely and not take another job at all.\nHowever, there was another interesting opportunity for a job that I started in 2016. But it was different than before. I was employed in a small family business and basically had an entire department for myself. I planned and installed alarm systems, video surveillance and digital access control. I was on site with the customers, advised them, wrote offers, ordered and installed the systems, wrote invoices and did the maintenance. It was a very interesting job and I learned a lot and had fun along the process. I would probably still be there today if something drastic hadn\u0026rsquo;t changed in my life, but more about that later.\nI got my first cryptocurrencies at the beginning of 2017 and have been very enthusiastic about them ever since. That was probably also the breakthrough for my lifestyle business and 2017 was also a very eventful year for me and my family. Our daughter was born, we got married after 16 years, we bought a large motorhome, we thought about emigrating and planned our first trip to South America.\nPrevious Next New plans for the future # After a very successful year, the crypto market collapsed in 2018. I was still very new and inexperienced in this area, but I stayed calm and just stayed calm. In March 2018, all three of us flew to Paraguay and applied for the cedula and permanent residence permit. We weren\u0026rsquo;t yet sure whether we would actually emigrate, but we took a look at a new settlement that was being built in Paraguay at this time.\nWe had just bought our new large motorhome and wanted to experience a few more trips with it, but the desire to emigrate and start somewhere new was still strong. Back in Germany, we made a plan. We actually decided to emigrate and sell our apartment and garden.\nWe didn\u0026rsquo;t want to sell the motorhome straight away, plus my wife was pregnant again and we wanted to get our second child in Germany too, as everything went so well with the first birth. Our plan now was to sell the apartment but to be allowed to live there until we move into the motorhome about two to three months after the birth and go on a trip through Europe for six months.\nSo I quit my regular job again, which I had actually really enjoyed, but I had no other choice when it came to a new life in Paraguay. After the birth of our son in February 2019, I went on parental leave and never returned. Since then, I haven\u0026rsquo;t had a job or a stable income. This was unimaginable for me before, but we\u0026rsquo;ve been living like this for a few years now and somehow it seems to be working. It\u0026rsquo;s now July 2024 and over five years have actually passed in that time.\nOur plan at the beginning was perfect and we stayed on a campsite in Münster for a month to say goodbye to our dearest and long-time friends. We then began our final tour via Belgium to France. Our destination was the Algarve in Portugal and so we drove on through Spain, always along the coast. Later we continued via Gibraltar along the coast in the south back to Germany. I wrote a few blog articles about our motorhome trip.\nCamping with a motorhome through Spain and Portugal Part 1 Camping with a motorhome through Spain and Portugal Part 2 Camping with a motorhome through Spain and Portugal Part 3 Camping with a motorhome through Spain and Portugal Part 4 Previous Next Move to Paraguay # Back in Germany, we sold our motorhome and flew to Paraguay. We have now been living in Paraguay since November 2019 and have created our own paradise in a gated community. I have already written a few blog articles about the development and will certainly write more articles about our life in Paraguay. There will be more details about why we moved and left Germany.\nOur property in Paraguay Building a house in Paraguay Part 1 Building a house in Paraguay Part 2 Building a house in Paraguay Part 3 Quincho and treatment room We now have our own property and house here and Stefanie even has her own treatment room for pain therapy. I have a woodworking shop and build our own furniture. We have all the freedom we need here on site and I will be able to continue working online over the internet. Of course, I\u0026rsquo;m not going to sell you anything at this point, but maybe I\u0026rsquo;ll inspire you and you\u0026rsquo;ll pluck up the courage to change your life in a different and positive direction?\nIf you are already settled and everything is going perfectly in your life, then I am of course very glad if I can still inspire and above all entertain you with our articles. You can find all blog articles about our life in Paraguay here.\nEl Paraiso Verde Paraguay Kind regards\nSebastian\n","date":"6 February 2023","externalUrl":null,"permalink":"/about/","section":"","summary":"Welcome to my personal blog. My name is Sebastian Zehner and I am the founder and owner of sebastianzehner.com","title":"About Me","type":"page"},{"content":"","date":"16 January 2023","externalUrl":null,"permalink":"/tags/pain-therapy/","section":"Tags","summary":"","title":"Pain Therapy","type":"tags"},{"content":"","date":"16 January 2023","externalUrl":null,"permalink":"/tags/quincho/","section":"Tags","summary":"","title":"Quincho","type":"tags"},{"content":"Our quincho is now finished and Stefanie\u0026rsquo;s treatment room is also operational. A handful of little things are still missing, but more on that in a moment. As always, time passes very quickly here and another few months have passed.\nWith her new room, Stefanie now has even more appointments than before. Last year she could only arrange home visits and now with her own room it\u0026rsquo;s a new level and the clients feel very comfortable. I\u0026rsquo;ll show you a few more recent pictures of her treatment room in a moment.\nTreatment room for pain therapy # Once the quincho was almost finished, we first furnished the room. Stefanie of course set up her massage table and planned the furniture herself. A shelf with a ladder and a desk with wooden stands. She painted everything herself and I\u0026rsquo;ll be finishing the shelves and table top for her soon. You can find the latest building progress here.\nI also installed the lighting on the roof and walls as well as curtain rails and hung the curtains. This means that her treatment room was ready for use very quickly. She now does up to 4 treatments a day, whereas she used to limit herself to just 2 treatments a day. However, the new residents are quickly spreading the word and Stefanie regularly receives new requests, as everyone with pain wants to be treated by her or simply have a relaxing massage. Here are a few pictures of the Quincho and the treatment room:\nPrevious Next Her pain therapy practice can also be found via Google Maps and Stefanie will certainly be pleased to receive a review from her satisfied customers:\n﻿ Finishing the quincho and outdoor kitchen # Unfortunately, we had to cancel the final work on the outdoor kitchen. So now we\u0026rsquo;re still missing the insert for the grill and a functional oven. I\u0026rsquo;m going to start looking for them myself and try to find something suitable here in Paraguay. I\u0026rsquo;m already in contact with a few suppliers, so we\u0026rsquo;ll see what comes out of that. Unfortunately, we can\u0026rsquo;t use our outdoor kitchen at the moment.\nHowever, we have bought a beautiful set of massive wooden table and benches and have already had our first party on Sofia\u0026rsquo;s 6th birthday. To make the area around the quincho green again sooner, we had turf laid this time, which was still on offer at the moment. I think it was worth it and we are now watering it properly so that the lawn can grow well. Not easy in summer at 38°C, but luckily it rained again and it\u0026rsquo;s supposed to rain again next Saturday.\nThat suits us just fine and otherwise we are optimizing the watering. We have a water pump and have been drawing water from our lake for watering since last year. We have a metal sprinkler and have ordered two more so that we don\u0026rsquo;t have to water everything by hand. Maybe we\u0026rsquo;ll automate the watering at some point? We only water the newly laid lawn and of course our young trees when it\u0026rsquo;s dry, otherwise we let nature take care of itself.\nMy next job is to install the outdoor lighting around the room, where we have the same wall lights as inside. I also need to buy more electrical and network cables. We haven\u0026rsquo;t laid any network cables to the room yet, so I\u0026rsquo;ll have to do that myself, as well as the electrical cables for the outdoor lighting along the path to the patio extension. Only then will I build the lamps for it. However, I already have most of the material for the lamps here. That will be a lot of work again.\nPrevious Next New wooden rabbit hutch # Of course, we have now received the rabbit hutch we ordered and our two rabbits have been able to move into their new two-storey villa. The rabbit hutch has found its place behind the quincho between two bamboos and is therefore wonderfully protected from wind and weather. The long legs were actually intended to be buried in the ground. We didn\u0026rsquo;t know this and we just tried leaving the rabbit hutch like this and what can I say, it\u0026rsquo;s heavy enough and doesn\u0026rsquo;t need to be dug in.\nNo storm has blown it over yet and the height is also perfect for accessing the rabbits. Foreign animals therefore have no chance of getting to our rabbits. When we mow the lawn, they are usually left free and are allowed to hop around our patio by the house so that they are not scared of the noisy lawnmower.\nPrevious Next Further work on the property # I made another request for the roof extension on the carport and we will soon receive a quote from a different builder. Unfortunately, we still hadn\u0026rsquo;t received a quote after our first inquiry three months later. I assume that the second request will now be more successful and proceed faster. We need our roof extension urgently as our carport is now very crowded.\nI usually like to build my furniture there because it\u0026rsquo;s much more comfortable than in the workshop and it\u0026rsquo;s not really possible at the moment. As soon as the roof extension is finished, I\u0026rsquo;ll have more space again and all my vehicles and stuff will be protected from the strong sunlight and rain. I will continue to report and take care until then.\nKind regards\nSebastian\n","date":"16 January 2023","externalUrl":null,"permalink":"/posts/quincho/","section":"Posts","summary":"Our quincho is now finished and Stefanie`s treatment room is also operational. A handful of little things are still missing, but more on that in a moment. As always, time passes very quickly here and another few months have passed.","title":"Quincho and treatment room are finished","type":"posts"},{"content":"","date":"16. January 2023","externalUrl":null,"permalink":"/de/tags/schmerztherapie/","section":"Tags","summary":"","title":"Schmerztherapie","type":"tags"},{"content":"","date":"16 de January de 2023","externalUrl":null,"permalink":"/es/tags/terapia-del-dolor/","section":"Tags","summary":"","title":"Terapia Del Dolor","type":"tags"},{"content":"","date":"25 de September de 2022","externalUrl":null,"permalink":"/es/tags/cosina/","section":"Tags","summary":"","title":"Cosina","type":"tags"},{"content":"","date":"25 September 2022","externalUrl":null,"permalink":"/tags/kitchen/","section":"Tags","summary":"","title":"Kitchen","type":"tags"},{"content":"","date":"25. September 2022","externalUrl":null,"permalink":"/de/tags/k%C3%BCche/","section":"Tags","summary":"","title":"Küche","type":"tags"},{"content":"","date":"25 September 2022","externalUrl":null,"permalink":"/tags/moving-abroad/","section":"Tags","summary":"","title":"Moving Abroad","type":"tags"},{"content":" Construction progress of our quincho # In my last post, I talked about the construction of our new quincho. I also mentioned that we planned to build a new path from our house to the quincho and that we wanted to extend the terrace by an additional 2.50 meters during the construction.\nToday, I’d like to show you some current photos showing the progress of the quincho’s construction as well as the newly built path, which is already completed.\nPrevious Next Unfortunately, the quincho isn’t finished yet; the progress has been a bit slow. Currently, the walls and columns have been built to a considerable height. The roof is almost complete, but we’re still waiting for some missing wooden planks. I think the roofing workers can finish the roof fairly quickly after that.\nHowever, we’re also waiting for the components for the outdoor kitchen, and only after that will the chimney likely be continued to be built. It probably doesn’t make sense to finish the roof before that—unless maybe only half of it is completed, so at least Stefanie’s area is protected from the elements.\nLet’s see how things go next week; it’s also forecast to rain, so progress might be slow. The electricians have installed most of the electrical conduits, and the exterior and one interior wall have been plastered. The outdoor kitchen has been partially built; the interior flooring is done inside, but the exterior flooring still needs to be laid. We’ve selected the tiles and windows, so they can be ordered and delivered.\nWhen planning our new path made of natural stones, I immediately thought about incorporating the empty conduits for electrical and network cables right from the start. Otherwise, we would have had to dig up the grass again later to create a channel for the cables, and the grass has already suffered enough during the entire construction process.\nWe’ve created a few new paths around the property, but they will eventually disappear too. Additionally, we had some extra conduits installed for the path lighting as well as additional terrace lighting. We chose a slightly larger electric distribution box on a whim, so that we can control the outdoor lighting from there; for this purpose, I plan to build new column lamps for the path in the near future. I’m really curious to see how it will look when it’s all finished. Here’s our new view from the terrace.\nPrevious Next New ideas during the construction phase # Once again, we came up with new ideas for how to develop our property further. Now, we very likely will also dig a small pond in that area, and later on, we plan to add a small, illuminated stream there as well. I don’t know exactly when I’ll be able to implement all these plans, but you always need to have new goals to strive for.\nAnyway, this is now part of our plan, and I’ll start with the pond shortly. The compost I dig out from the pond will be used to create a small hill in another part of the garden, which we will then beautifully plant. It’s getting more and more beautiful here; three years ago, there was absolutely nothing at this location. Everything has been created from scratch—it’s simply incredible.\nStefanie and the children really want two rabbits, so we’ve ordered a rabbit hutch. I’m looking forward to seeing when it will be finished; after that, we’ll get two rabbits to live on our property. I haven’t made any progress with building the chicken coop yet, but the rabbits should be here soon, and our children are already extremely excited about it.\nOur kitchen with the new countertop # In the meantime, I was able to remove the temporary wooden worktop made from multiplex; the marble installer has delivered and installed our new worktop made of black granite. It looks really beautiful!\nWe’ve also finally managed to install the sink and the faucet. The additional small water heater (with a capacity of 20 liters) that’s only for use in the kitchen is now in operation as well.\nThe kitchen is almost finished; all that’s left are the doors and the fronts for the cabinets, which I hope to complete soon. I’ve installed the base of the cabinets, but I need to remove it again before painting them. That will happen on the next dry day, since it’s going to rain today and next week.\nHere are some pictures showing the progress of our kitchen’s construction. I did everything myself, except for the new granite worktop. Sometimes I really wonder how I manage to juggle all these tasks with my schedule.\nThere are always requests from people asking if I could build something for them, but I simply don’t have the time right now, especially considering all the items on my to-do list.\nPrevious Next Since the marble worker was already at the house, he also finished installing the washbasins during another appointment. We were then able to place the sinks, connect the faucets, and get them up and running.\nNow we have four sinks in the house, instead of just the one from the storage room—which we’ve been using all along. I still need to apply silicone sealant around the sinks so they can be used in the bathrooms as well. Pictures of the washbasins and the kitchen will be posted once they’re completely finished.\nMore ideas # I’ve had a completely new idea for a larger project in the past few days, but I won’t write anything about it for now. Since the construction of the “Quincho” is almost finished, I really need to set a new, bigger goal for myself; otherwise, sometimes I lack the motivation to continue with certain things and just let them be as they are.\nAs soon as my plans in this regard become more concrete, I’ll share them on my blog. By the way, we have been in Paraguay for three years already since November 2022. Time flies so fast, and we are more than grateful to have taken this step. Living in absolute freedom is even more valuable nowadays than ever.\nIf you want to know more about our move abroad, or even if you’re considering doing the same yourself, feel free to contact me. I’d also be happy to write more articles on these topics for my blog.\nIn the meantime, I wish everyone a wonderful time. By the way, in October, we’ll switch to summer time here; we already have spring, but it’s still a bit chilly sometimes. We’re looking forward to the summer and temperatures above 30 degrees Celsius!\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"25 September 2022","externalUrl":null,"permalink":"/posts/the-new-path-from-our-house-to-the-quincho-is-finished/","section":"Posts","summary":"In my last post, I talked about the construction of our new quincho (a traditional Andean farmhouse). We also planned to build a new path from our house to the quincho, and at the same time, we wanted to extend the terrace by an additional 2.50 meters.","title":"The new path from our house to the quincho is finished","type":"posts"},{"content":"","date":"25 de September de 2022","externalUrl":null,"permalink":"/es/tags/una-vida-sencilla/","section":"Tags","summary":"","title":"Una Vida Sencilla","type":"tags"},{"content":"","date":"18 August 2022","externalUrl":null,"permalink":"/tags/garden/","section":"Tags","summary":"","title":"Garden","type":"tags"},{"content":"","date":"18. August 2022","externalUrl":null,"permalink":"/de/tags/garten/","section":"Tags","summary":"","title":"Garten","type":"tags"},{"content":"","date":"18 de August de 2022","externalUrl":null,"permalink":"/es/tags/jard%C3%ADn/","section":"Tags","summary":"","title":"Jardín","type":"tags"},{"content":" The treatment room and our outdoor kitchen # The construction work began some time ago, and the room is almost finished. First, a compacted clay platform was created to provide a solid foundation for our “quincho” (a traditional Latin American shelter). On top of that, a reinforced concrete slab was poured. Shortly thereafter, the masons started their work; they are currently building the treatment room for Stefanie.\nThe structure will later include a glass sliding door and a sliding window. On the other side, as well as at the end of the concrete slab, two columns made of decorative bricks will be installed. These columns will serve as a foundation for the roof construction. We will also build our own outdoor kitchen, which will have a chimney that will protrude through the roof. The roof will be covered with straw, giving us a beautiful thatched roof that matches the appearance of the seating area behind it.\nOur garden in Paraguay is growing # We continue to take care of our garden. The grass is getting thicker every day; the trees are growing at their own pace, and occasionally new trees are added. Once the quincho is finished, we will also plant trees and shrubs around the building. We also plan to extend the terrace and build a new path from the house to the quincho using natural stones. The construction work is expected to begin in about two weeks. We want to decorate the edges of the path with shrubs and install some ambient lighting in certain areas as well.\nWe’ve mostly bought the lamps for the quincho, and they’re just waiting to be installed. We also planted two pine trees; maybe we can decorate them with a string of lights later on? The children will definitely love that. In the meantime, we’re harvesting a lot of chili peppers, some paprika, tomatoes, and strawberries—all in the Paraguayan winter. I’d like to plant some willows as well and use them to build raised beds and fences later on. Maybe I’ll build the raised beds out of bamboo first; we’ll see. Anyway, we want to have several raised beds. We’ve already built two of them using natural stones.\nThe next projects are already planned # I would like to extend our carport on the side, at least the part with the roof. This would allow all our vehicles to be protected under the roof. With the motorcycle cargo carrier and the trailer, things have become a bit cramped, and I also want to be able to store our boat on the trailer without it being constantly exposed to the sun. This would make our carport neater and more organized, as I also use that space quite often for building furniture.\nSo, I will ask shortly whether someone can build it for me. Otherwise, I still have a plan for a chicken coop; I will prepare a list of materials and order the appropriate wood for it. Once I have the materials here, the chicken coop can be built. We will probably start with 4 to 6 chickens. This will also be very interesting for our children, and most of all, we will have our own chicken eggs.\nI had another idea recently while planning the new path. A whirlpool would definitely look great on the extended terrace area. Let’s see if this will ever become a reality.\nMore videos on YouTube? # I really want to make a lot more videos about our life in this “green paradise.” I need to figure out a way to balance my schedule so I can make time for this. I have certain expectations for the future videos, but they shouldn’t be too perfect either—otherwise, as experience has shown, nothing will ever get done. Unfortunately, I neglected all of this in the past; otherwise, we would now have a really nice documentary covering the entire period from then to now.\nThat would definitely be very interesting. I’ve made a few short video clips, but mostly taken more photos. I need to see if I can put together a video that effectively shows the differences between today and back then. So much has changed over the past few years; many new houses have been built in our neighborhood. It might also be interesting to do a tour of the construction sites and show the current progress. Maybe I’ll manage to combine all that into one video; I’ll let my mind wander for some ideas.\nFurniture also runs alongside # Recently, I’ve done some more renovations to our kitchen. We’re still waiting for an offer for the marble so that we can replace the temporary wooden worktop. Other than that, I’ve finished building all the drawers; now all that’s left are the fronts and doors, which I really want to make look nice. I also need to build more drawers for our bedroom, as well as all the corresponding fronts and doors. For our three-wheeled cart, I’ve already made a wooden box; all that’s left is to attach the lid with its hinges. Additionally, we have a storage box with seating space for the cargo area.\nYesterday and today, I cut out the pieces for a hanging cabinet and even started sanding them. Next week, I plan to assemble these parts. More pieces for our shoe cabinet have also been cut out, but there are still a few missing; I will mostly make up for those missing parts using scraps of wood.\nBy the way, I used some of the remaining materials to build a small wall shelf for the workshop. It seems I really can’t get enough of working in the woodshop! As soon as I have time, I also want to finally use my CNC router. But first, I need to assemble the router myself and build a suitable table for it. All of that will come my way over time.\nFor now, I’m taking a break from updating this project. It’s going to rain tonight, but tomorrow the weather is supposed to be dry again. Then I’ll continue working on the cabinet that will eventually hang on a wall in our house. See you soon!\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"18 August 2022","externalUrl":null,"permalink":"/posts/our-quincho-is-under-construction/","section":"Posts","summary":"Construction began some time ago, and the structure is almost complete. First, a compacted mud platform was created to provide a solid foundation for our Quincho.","title":"Our Quincho is being built","type":"posts"},{"content":"","date":"8 de May de 2022","externalUrl":null,"permalink":"/es/tags/emigraci%C3%B3n/","section":"Tags","summary":"","title":"Emigración","type":"tags"},{"content":"","date":"8 de May de 2022","externalUrl":null,"permalink":"/es/tags/entrevista/","section":"Tags","summary":"","title":"Entrevista","type":"tags"},{"content":"","date":"8 May 2022","externalUrl":null,"permalink":"/tags/interview/","section":"Tags","summary":"","title":"Interview","type":"tags"},{"content":"In this blog post, I would like to report again on my interview from last year and also on our sightseeing flight over the settlement area in March 2022. I gave the interview in November 2021, after we had already been living in Paraguay for two years. Another six months have now passed. Time really does fly by here and I would like to show you my video of the sightseeing flight in a Cessna 210.\nAfter two years in El Paraiso Verde # We, my wife Stefanie and our two children Sofia and Liam, have been living in Paraguay since November 2019. In October 2020, we moved into our own house on Anastacia Circle. We are very happy with our decision and simply love living in our settlement, which we probably also owe to our fundamentally positive attitude. It wasn\u0026rsquo;t always easy, you have to find your way around a new country first. I talk about this and other interesting topics in the following interview.\nWe got to know El Paraiso Verde at the end of 2017 and we only had two Skype conversations from Germany to get more information about the project and, above all, to find out whether we had any chance of building a new life there as a family. We bought a 2500 square meter plot of land directly with the option to swap at any time or, in the worst case, to give it back. In March 2018, we attended an information week and took a look at the project on site. Our first visit to Paraguay and the longest flight with my wife and our then one-year-old daughter.\nOf course, there wasn\u0026rsquo;t much to see at that time. There was no road leading to our plot and there were no finished buildings. The first buildings in Pira Tava were under construction. We stayed in a hotel in Caazapa and kept taking the bus to the estancia. We liked the project and the vision of Dr. Erwin and Sylvia Annau, we had confidence in the two founders and wanted to emigrate as soon as possible after the information week.\nOf course, this took a while for us, depending on the initial situation, it is different for everyone. We were finally able to leave Germany in November 2019 and have been living in El Paraiso Verde in Paraguay ever since, building our own green paradise.\nI can certainly go into a bit more detail when I get the chance and maybe write my own blog article about it if you\u0026rsquo;re interested. But for now, take a look at my interview, where I tell you a lot about our story and you can also find out a bit about life on site.\nOur sightseeing flight from Caazapa airport over El Paraiso Verde # We had the opportunity to take part in a sightseeing flight. There are a few pilots in our settlement. This is of course a wonderful opportunity that we didn\u0026rsquo;t want to miss. On March 5, 2022, we therefore had our first sightseeing flight in Paraguay with a Cessna 210. We took off from Caazapa Airport to fly over El Paraiso Verde. We then returned to the airport with a total flight time of around 20 minutes.\nMore or less spontaneously, I had my little DJI Osmo Pocket camera with me. Unfortunately, I only recorded with the internal microphone, so I apologize for the poor audio quality in places. For a spontaneous video, however, the movie \u0026#x1f4fa; turned out quite interesting.\nI hope you enjoyed both videos and had fun watching them. Feel free to write me something about it in the comments. If you would like to see more videos, please let me know what you are interested in. Many thanks!\nBest regards\nSebastian\n","date":"8 May 2022","externalUrl":null,"permalink":"/posts/interview-after-two-years-in-paraguay-and-a-flight-over-el-paraiso-verde/","section":"Posts","summary":"In this blog post, I would like to report again on my interview from last year and also on our sightseeing flight over the settlement area in March 2022.","title":"Interview after two years in Paraguay and a flight over El Paraiso Verde","type":"posts"},{"content":"","date":"8. May 2022","externalUrl":null,"permalink":"/de/tags/rundflug/","section":"Tags","summary":"","title":"Rundflug","type":"tags"},{"content":"","date":"8 May 2022","externalUrl":null,"permalink":"/tags/sightseeing-flight/","section":"Tags","summary":"","title":"Sightseeing Flight","type":"tags"},{"content":"","date":"8 de May de 2022","externalUrl":null,"permalink":"/es/tags/vuelo-tur%C3%ADstico/","section":"Tags","summary":"","title":"Vuelo Turístico","type":"tags"},{"content":"","date":"7 de May de 2022","externalUrl":null,"permalink":"/es/tags/cocina/","section":"Tags","summary":"","title":"Cocina","type":"tags"},{"content":"","date":"7. May 2022","externalUrl":null,"permalink":"/de/tags/holzwerkstatt/","section":"Tags","summary":"","title":"Holzwerkstatt","type":"tags"},{"content":"It’s been a long time since my last blog post. To be precise, another whole year has passed. How quickly time flies! It seems I never found the time to write. Nevertheless, a lot has happened, and we’ve made significant progress on our property. I’d like to give you a brief update today. Probably I can’t cover everything, and the information might not be completely up-to-date.\nI keep posting smaller updates from time to time on:\nInstagram Facebook If you’d like to follow along with that, you’ll find me there. I’m actually surprised by all the things we’ve accomplished over the past year. It’s hard to really notice the changes—that is, to fully grasp them when you’re right in the midst of the events. Anyway, my woodworking shop is now finished and partially furnished, which brings me back to my last blog post.\nWhy only partially completed? I had other priorities when it came to building the furniture for our house; therefore, I haven’t made any cabinets for my workshop yet. I spend a lot of time outside my workshop, where I carry out the main part of my work.\nIt’s really fun to work outdoors, under the carport – it’s very pleasant there. Of course, I don’t always have the time to build all the furniture, because I also help many people with their relocation processes and help them prepare for their new lives. It’s a great task, and I’m happy for everyone who manages to make it and finds happiness in our community.\nWhat have I built for us over the past year? # Here’s a brief summary of everything I built for us last year. The biggest project was our kitchen. There were many details to take care of, and we can already use the kitchen, but it’s not completely finished yet; three drawers and all the cabinet fronts are still missing. For those parts, I want to create something really beautiful, so I need to invest the necessary time and patience. For now, the kitchen is still functional. We have a temporary wooden worktop; probably we’ll end up getting a suitable stone worktop as well.\nNext, I started working on our wardrobe. Once again, the drawers and the fronts are still missing… But as they say in Paraguay, “tranquilo” (meaning “calmly” or “patiently”). Eventually, I will get to it and finish installing those parts too. Often, other people receive more of my attention than we give to ourselves. As long as our basic needs are met, that’s perfectly fine.\nMeanwhile, I’ve continued working on our washbasins. They could actually be finished already if the stone slabs had been installed. The problem right now is finding someone to do that. I’m considering making the slabs from glued wood panels myself and then installing a nice wooden top for the washbasins. Well, that’s not yet a final decision; I need to give it a try first. By the way, I bought a heavy-duty planer that I can use for this task.\nI also built some shelves for our storage room. The children finally got their bunk bed, which comes with a nice platform and a comfortable ladder. Their wardrobe was completed using parts from someone else’s project; it turned out very nicely, and they’re going to receive some doors donated for it later on.\nI built a desk for myself, and that’s probably one of the reasons why I’m writing another new blog post now. It’s just more comfortable to write while sitting down. Otherwise, I mainly used my laptop at the standing desk for Skype calls; having conversations while standing is also quite pleasant.\nOur children wanted their own playground. Of course, that means the dad has to build it too. First, I needed to figure out where I could obtain all the necessary materials in Paraguay. I found a nice contact person through whom I was able to buy everything in one go, even including the construction plans, and then I got to work on this new project.\nThe children obviously found the playground more important than the bunk bed, so I put off building the bunk bed and focused on constructing the playground first. Our neighbor even helped us with the concreting. It’s a great playground with a play tower, a slide, two swings, and a flexible climbing ladder. We’ll see what else can be added in the future. I’d like to build a “Ninja Warrior Parkour” area at some point; that would also be a fun space for us adults to use. I already have some ideas for that in my head.\nFor the outdoor area, I also built a planting table with a shelf, as well as a support structure for our rose bush. I did all this bit by bit, in my spare time; it’s only by taking things one step at a time that you can achieve your goal. Take a look at these few pictures to see the process in action:\nPrevious Next What’s going on in our garden? # We regularly mowed our yard, and over time it turned green on its own. We didn’t plant any grass seeds or even use any pre-made turf. It’s quite impressive just to let nature take its course; with a little patience, it becomes a breeze to maintain. We’ve planted new trees several times, and even the area in front of the house is ready for growth. Eventually, our house will be almost impossible to see from the road.\nLet’s see what happens this winter; I hope nothing freezes or breaks down. It already looks really nice, and all the plants grew in just a few months. The growth really started in the spring, and once it rains properly, the trees experience a surge in growth.\nWe built some raised beds using stones, and now we have tomatoes, chilies, peppers, cucumbers, and more growing there. The first successes in food production have already been achieved. In the coming time, we will try even more things and make further improvements. It’s a lot of work, and we do everything ourselves.\nJust keep trying again and again, see how things work, and learn from that process. Unfortunately, we weren’t taught this when we were kids, so we have to learn everything from scratch now. It’s a truly exciting adventure, and our children have been part of it from the very beginning. It’s like a paradise – having the opportunity to grow almost anything imaginable.\nPrevious Next What is next planned for us? # Next, we’ll build our quincho (an outdoor shelter or pavilion). The planning and cost estimation have been completed; I’ve already signed all the necessary documents, so construction could begin soon. This will result in a beautiful outdoor kitchen with a wooden grill, a wood-burning stove, and a wooden fireplace. There will also be a large, rustic wooden table with benches, where we can spend pleasant time with our loved ones.\nIn addition, we have planned a space for Stefanie where she will be able to provide her treatments (massages and pain therapy). Unfortunately, she no longer has a room available at our settlement; there are just too many of us now and no free spaces left. All the apartments and Newtel rooms are usually occupied. So, this separate room on our property is necessary – perhaps we won’t even need to leave our property anymore.\nThis should suffice as an initial update for now. I’ll be writing another blog post shortly; it will cover my latest interview regarding immigration and life in Paraguay, specifically within a gated community. What are the challenges involved, and how do we feel living in El Paraiso Verde?\nI will also link to my video from that flight in the post. It was in early March 2022; we started from the airport in Caazapa and flew for about 20 minutes to our settlement, then back again. That was also a great experience for us.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"7 May 2022","externalUrl":null,"permalink":"/posts/lots-of-progress-on-our-property-in-paraguay/","section":"Posts","summary":"Here’s a brief summary of everything I built for us last year. The biggest project was undoubtedly our kitchen. There were numerous details to take into account, and we can already use the kitchen, but it’s not yet completely finished.","title":"Many progressions on our property in Paraguay","type":"posts"},{"content":"","date":"7 de May de 2022","externalUrl":null,"permalink":"/es/tags/taller-de-madera/","section":"Tags","summary":"","title":"Taller De Madera","type":"tags"},{"content":"","date":"7 May 2022","externalUrl":null,"permalink":"/tags/woodworking-workshop/","section":"Tags","summary":"","title":"Woodworking Workshop","type":"tags"},{"content":"","date":"4 de May de 2021","externalUrl":null,"permalink":"/es/tags/carpinter%C3%ADa/","section":"Tags","summary":"","title":"Carpintería","type":"tags"},{"content":"We are currently having a small workshop built. I had already taken this into account when building our carport, because at some point there was supposed to be a small room at the back that I could use as a workshop. It came sooner than planned because I really wanted to have a room where I could build our furniture in a more comfortable environment. A few weeks ago, I planned this small wooden workshop under our carport and placed the order after receiving the proposal.\nConstruction has already started # A solid two weeks have now been spent working on this room, with Easter in between, and my little wooden workshop is now as good as finished. The correct power sockets were still missing and a few little things need to be reworked. Then the room can be cleaned and furnished by me. The workshop is actually nothing special, just a room with a floor area of 4m x 5m. A glass door and a window, of course with an electrical installation from power sockets to light switches, as well as outdoor lighting with motion detectors and air conditioning in case it gets too hot.\nI think the workshop fits in beautifully with our house and property. It\u0026rsquo;s a nice finish to the carport and I\u0026rsquo;m looking forward to being able to put all the tools and machines away. I\u0026rsquo;m hoping that this will make my work more relaxed, because until now I had all the tools in one room in the house and had to keep moving them back and forth as soon as I started working on our furniture. I also couldn\u0026rsquo;t work in the rain, but in future that will certainly be possible in my own tiny workshop.\nGardening around the workshop # In the last few days, we have already started to spread the delivered soil in the gaps. I had four large piles of soil in front of the house by the road. We crushed, removed and spread these over a longer period of time. We will soon be spreading this soil around the workshop as soon as the construction work is complete. We will then be able to plant some beautiful flowers and shrubs to further enhance the property.\nConnection prepared for an backup generator # In Paraguay, the power lines are laid overland and during storms it can happen that the power lines are damaged and then we have a power cut for a few hours. This has been relatively rare recently, but if you do have a power cut for a few hours, it can be annoying. Depending on what you\u0026rsquo;re doing and what you\u0026rsquo;re dependent on the power for.\nFrom time to time, new houses get connected in our settlement or the power grid is extended, and then the power has to be switched off for a morning or afternoon. In Paraguay, this usually happens very spontaneously. We have therefore considered purchasing an backup generator to bridge this period for a short time if necessary.\nWe have made all the necessary preparations and will be able to set up and connect an backup generator in the rear area of the workshop at some point. It will then be operated in automatic mode. If the power fails, the backup generator will switch on automatically and we will have power again after a few seconds.\nWe have several uninterruptible power supplies with batteries (UPS) in the house, so this switchover time is also bridged and the devices run without interruption. As soon as the power from the local electricity provider is available again, this is recognized and automatically switched over. The backup generator then switches off automatically after a few seconds.\nI\u0026rsquo;ll get in touch again as soon as the workshop is ready for use. The electricity has now been installed, the power sockets installed and the air conditioning is also working. I still need to buy some lighting for inside and two LED spotlights with motion detectors for outside. I\u0026rsquo;ll then furnish the workshop and we can continue.\nKind regards\nSebastian\n","date":"4 May 2021","externalUrl":null,"permalink":"/posts/construction-of-a-small-wood-workshop-on-our-property-in-paraguay/","section":"Posts","summary":"We are currently having a small workshop built. I had already taken this into account when building our carport, because at some point there was supposed to be a small room at the back that I could use as a workshop.","title":"Construction of a small wood workshop on our property in Paraguay","type":"posts"},{"content":"","date":"4 May 2021","externalUrl":null,"permalink":"/tags/wood-workshop/","section":"Tags","summary":"","title":"Wood Workshop","type":"tags"},{"content":"The time here in Paraguay is flying by, even though it’s actually a very peaceful and relaxing place. We already have a lot to do again and are quite busy.\nI’m working on several projects, and today I’d like to share with you another little update about our life in Paraguay. The last time I updated you was through:\nMoving into our new house in Paraguay. What has changed during this time? # We planted more trees. Unfortunately, some of them have died, while others are growing very well. We’re just trying a lot of different things out since we’re not professionals in this area.\nWe have mostly dealt with and distributed the pile of earth between the house and the road; soon we will also plant some trees there. Stefanie will make a list this weekend of the trees we would like to order. I think we will plant them the following week.\nWe also planted vegetation in the strip of land between the house and the carport. The hibiscus has grown quite well again recently, after having been completely eaten by leafcutter ants. Lately, we haven’t had any more problems with leafcutter ants; I hope this will continue. A few days ago, Stefanie planted some more shrubs next to the carport.\nFurniture manufacturing in Paraguay, with our own workshop # Our carport is currently undergoing renovations. Over the past few weeks, I worked on designing the layout for my workshop and submitted the plans on Monday. Since Tuesday, the construction workers have been working to build the space beneath the carport for me.\nThings are progressing quickly, and I’m excited when the workshop is finished. Then I’ll be able to organize everything and continue with the furniture construction. I’m really glad we made this decision; it already looks amazing, and I can’t wait until it’s all done.\nBy the way, in the meantime I also received the eucalyptus solid wood that I had ordered. That was another whole story… \u0026#x1f648; In the end, we had to start all over again at the beginning of the year. I was given a list of the standard dimensions that are always available, and now I can place orders for them whenever I need them.\nA one-week delivery time – if I still want to have both sides of the item freshly machined. Of course, I’m very satisfied that I’ve found a good supplier as well.\nOf course, the furniture-making process itself progressed slowly anyway, because I kept having to assemble and disassemble my materials and tools. In the meantime, I cut the pieces for the cabinets under the washbasins and have already assembled some of them.\nOur floating bed is 90% finished; all the parts are made from solid wood. I just need to install the panels, apply some oil, and install the indirect lighting. The parts for the children’s bunk bed have all been cut out and some of them have already been sanded. The construction of the furniture will continue once my workshop is ready.\nBack online and active with my online business again? # Otherwise, I’m currently participating in a lot of Skype conversations and am getting involved with a new cryptocurrency project. So I’ll become more active again with my online business and not just rely on passive income.\nI once again feel more motivated to help other people escape from that cycle of endless hardship, so that they might also be able to lead a life of freedom. I’ve noticed that many people have even less freedom since last year, and of course, this situation must be changed.\nWe feel very comfortable here in El Paraiso Verde, Paraguay. I am extremely grateful that we took this step. Most of all, I am happy that we stood up for our rights and fought for our freedom.\nWe took the plunge and seized the opportunities as they came along. We stopped making any excuses and just focused on moving forward with determination. Looking back on all the things we’ve experienced over the past few years… it’s simply incredible and absolutely priceless.\nI wish you a wonderful time and see you soon!\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"26 March 2021","externalUrl":null,"permalink":"/posts/update-from-our-property-and-house-in-paraguay/","section":"Posts","summary":"We already have a lot to do again and are very busy. I’m working on various projects, and today I would like to share with you some updates about our life in Paraguay.","title":"Update on our property and house in Paraguay","type":"posts"},{"content":"A lot of time has passed since then; we have been living in our own house in Paraguay for a few months now. We actually have electricity, water, and internet at our property. The electricity supply started on October 7, 2020, and shortly after that, we spent our first night in our new home.\nThe apartment we lived in for 11 months was able to be returned shortly thereafter. It’s an indescribable feeling to live in your own house, on your own land, in this peaceful rural area.\nSince my last blog post, the driveway, carport, and path around the house on our property have all been completed. We also had a water filter installed directly at the house’s water supply connection, and the electrical work is almost finished.\nThe electrical wires for the lighting all came from above the walls. I had to extend and install them accordingly according to the final position of the lamps. I installed all the lamps and light fixtures myself, first on the terrace, then around the house, and finally in all the rooms.\nI even installed the network cables myself. The cables were already run for me, and I then wired all the junction boxes myself. On the other end, I installed a network distribution cabinet with a patch panel for us.\nThis enclosure neatly houses all the other networking devices. In the end, I measured all the cables, and everything fit perfectly right away.\nFurniture manufacturing in Paraguay # We’re still living a rather frugal life because we lack some furniture. Unfortunately, the wood needed for making the furniture isn’t yet available in full quantity, but we’ll manage for now. I visited the sawmill again last year; unfortunately, the solid wood wasn’t dry enough for use.\nWe waited another three to four weeks, and by then it should have been dry enough to start the sanding process. Unfortunately, I’m still waiting for the goods to arrive today. In the meantime, I ordered multiplex boards from another supplier and received them promptly.\nSo, at least I was able to build a workbench and start working on the cabinets for the washbasins in the bathrooms. After that, I’ll continue with the kitchen. Once the solid wood arrives, I can build our bed and the bunk bed for our children, as well as some other projects we have planned.\nI’m curious to see if there will be any developments regarding the delivery of this item. At the end of last year, I sent an email expressing my disappointment. There was at least enough understanding on their part, and they said I would receive the material after the company’s holiday period. Unfortunately, I haven’t heard anything from them yet.\nCurrently, we are using the sink next to the washing machine in the storage room for everything, as it is the only water outlet in the house so far. The shower and the bathtub are working perfectly. The stone slabs for the window sills and both washbasins have already been delivered and installed.\nNow I need to finish installing the cabinets so we can set up the bathrooms accordingly. At least I installed curtain rods in all the rooms and hung curtains before moving in, which already makes the atmosphere much more cozy.\nPlanting trees on the property # Meanwhile, we started working in the garden. We ordered another four loads of compost for the area in front of the house, to bring it to the same level as the path and then slope it down towards the road. Some of the compost has already been spread around; thanks also to the help from the digger operator!\nThe rest can be done by me now. Additionally, we received two loads of gravel to fill the area between the house and the road. It looks quite neat already, but it really took a lot of effort (and some sweat) to complete.\nOf course, we wanted to start planting as soon as possible, because it will take some time for the trees to grow to the appropriate size. I think after a year, you should be able to see considerable growth.\nSo far, we have been able to plant 40 to 50 trees of different species. As soon as I have distributed all the compost in front of the house, along the road, we will plant more trees. Planting trees is actually a lot of fun! \u0026#x1f333;\nWe’ve only prepared the vegetable bed yet; we haven’t actually planted much in it yet. We’re still deciding whether we need to provide some shade for it. It will probably be useful, especially for tomatoes and other sensitive vegetable varieties.\nWe currently have two butternut squash plants that are producing quite large and delicious squash. We also have two large cassava plants that we will be able to harvest soon, as well as two sunflowers. Stephanie recently planted watermelons in the garden; let’s see when they start to bear fruit.\nI plan to upload another video about our trees and the property soon. After that, I will keep posting new updates regularly to monitor the progress. I check on the trees every day, and I’m very sad when the leaf-cutting ants eat all the leaves.\nUnfortunately, we’ve already lost three papayas and five eucalyptus trees due to this reason. It feels like they’re growing too slowly, but you really don’t get a sense of the actual progress until you compare the old photos or wait for a few more months.\nBefore planting, I used a motorized lawn mower to cut down the entire area of our land, and then I continued to tidy it up with a manual garden fork several times. I will keep doing this until the end of the year; of course, now I’ll work around the trees as well. Once everything looks just the way I want it, we can plant grass in between the plants. That’s all for today’s update. I’ll be back in touch soon.\nIn the coming days, we’ll continue with the work to finish making our furniture. The weather will be unpredictable, and I won’t always be able to work outdoors. Of course, I do all the cutting and sanding of the wood outside under the carport; but when it rains (and it usually rains here quite heavily), everything gets wet anyway. \u0026#x1f605;\nIt’s time for me to have the workshop under the carport built into the wall; that way I’ll have my own dedicated space and be able to work regardless of the weather.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"14 January 2021","externalUrl":null,"permalink":"/posts/move-into-our-new-house-in-paraguay/","section":"Posts","summary":"A lot of time has passed since then, and we have been living in our own house in Paraguay for a few months now. We actually have electricity, water, and internet at our property.","title":"Moving into our new house in Paraguay","type":"posts"},{"content":"","date":"16 de August de 2020","externalUrl":null,"permalink":"/es/tags/construcci%C3%B3n-de-una-casa/","section":"Tags","summary":"","title":"Construcción De Una Casa","type":"tags"},{"content":"","date":"16. August 2020","externalUrl":null,"permalink":"/de/tags/hausbau/","section":"Tags","summary":"","title":"Hausbau","type":"tags"},{"content":"","date":"16 August 2020","externalUrl":null,"permalink":"/tags/house-construction/","section":"Tags","summary":"","title":"House Construction","type":"tags"},{"content":"We have been living in Paraguay for more than nine months now and today there is another update on our house construction. This will probably be the last update, as I\u0026rsquo;m sure the next blog post will be called \u0026ldquo;Moving into our new house in Paraguay\u0026rdquo;.\nThe construction work is almost complete and we are mainly still waiting for the electricity connection. This is estimated to take another four weeks, but as you know, everything can last longer in Paraguay.\nIn my last blog post, I reported that the roofers would soon be starting their work. Our roof ultimately took two weeks to complete, but the result is even more impressive. I really like the roof of our house, both inside and out, it\u0026rsquo;s really beautiful.\nAfter that, the interior work continued fast, especially now that nothing could get wet from the rain.\nDuring this construction phase, we decided to make some minor upgrades from time to time. For example, we replaced the interior doors with coated panels by solid wooden doors or had the exposed brickwork additionally sealed to keep it looking good for longer. We opted for an exterior color other than white.\nWe have also selected the fittings for the bathrooms and the switch program for the electrical installation. The electrical installation still needs to be finalized, so we can start as soon as the material arrives. However, the cables have already all been pulled through the empty conduits. The taps also still need to be installed, but I have to build a wooden under-sink unit for the two sinks first.\nOur waste water system, a Biodigestor, has already been installed on our property and connected to the house. We have also connected the water supply to the house. However, we would like to add a coarse filter in between, so the connection will be changed again as soon as the construction of the carport begins.\nBuild our own furniture in Paraguay # I mentioned the other day that I want to build our own furniture. I visited a sawmill in Maciel a few weeks ago and was shown around the factory and the products, and was allowed to take a few samples with me. Unfortunately, I haven\u0026rsquo;t received any exact prices yet, but I will be placing my order for the first projects soon.\nThese will include the beds, then the washstands and of course our kitchen. My tools should arrive in September and then I\u0026rsquo;ll be able to get started.\nWe\u0026rsquo;re really looking forward to furnishing our house and then finally being able to sit on our own terrace in peace. I can then show you more of our house and the property. You\u0026rsquo;ll see how everything develops over the next few years. It\u0026rsquo;s really starting to look like a small settlement where a few months ago there was only pasture.\nThe next building contract has been signed # The planning of our entrance with the carport and the path around the house has been completed and I have already signed the plans. I also recently received the cost calculation and was therefore able to approve the start of the building work.\nI\u0026rsquo;m excited to see when this final construction work will start. Of course, it would be nice if it could start next week. There is currently a lot of construction going on in our new settlement, but I think they will be able to finish the carport soon. It\u0026rsquo;s just important to me that we have a proper entrance to our property and can walk to the house without getting wet.\nOur settlement keeps growing # It has not been possible to come to Paraguay for a long time, but this month over 30 new people from Germany, Austria and Switzerland are joining us. Among them are our direct neighbors who will live diagonally across from our lake.\nThey will now start planning their house and getting it built as soon as possible. I can\u0026rsquo;t wait to see when they will be able to move in. We will have a construction site that we can watch from the terrace every day.\nBy the end of the year, we will probably have around 100 settlers in our settlement area, despite this crazy year. So many new houses have been built here in the settlement area over the last few months, even though construction has been halted and building materials have naturally become scarce.\nSo the building sites here are still going ahead, which of course makes us pleased.\nTo round things off for today, I have a video of a drone flight over our house with the finished roof and its current state. Have fun while watching.\nSee you soon and best wishes from Paraguay by Sebastian\n","date":"16 August 2020","externalUrl":null,"permalink":"/posts/house-construction-in-paraguay-part-3/","section":"Posts","summary":"We have been living in Paraguay for more than nine months now and today there is another update on our house construction. This will probably be the last update.","title":"House construction in Paraguay Part 3","type":"posts"},{"content":"We have been living in Paraguay for over seven months now and today I would like to write an update on our house construction and also report on how we are doing with the current situation.\nIn the meantime, the government suspended construction throughout the country for about five weeks, but since May 4, 2020, our house construction has been progressing rapidly. We will still have to wait a few months before we can move in, but we can already see the light at the end of the tunnel.\nIn my last blog post, I reported that our floor slab had been completed. It\u0026rsquo;s been a good three months now and, despite the aforementioned construction freeze, a lot has changed in that time.\nThe structural work is almost complete and the timber for our roof truss was delivered last Thursday. Friday was a public holiday in Paraguay and now it\u0026rsquo;s weekend. I assume that the roof construction can start on Monday and the roof is usually finished in two to three days.\nI took advantage of the good weather on Friday and flew over our construction site with the drone. I wanted to get a few more shots before the roof is installed on our house.\nHere is a current photo of our property and below I will show the drone flight. I think the video turned out quite well. It was a bit windy that day but you can see into our house very clearly from above. \u0026#x1f601;\nNevertheless, there is still a lot to do on our construction site and we are particularly looking forward to next week, because as soon as the roof is installed I want to be there to see it. The current picture of our house will change completely as soon as the roof is on.\nWe\u0026rsquo;re very excited about that, because so far we\u0026rsquo;ve only seen it on paper. We are also currently planning our entrance with a carport and a solid path made of natural stones around the entire house.\nGarden design for our plot # We went back and forth about when we should start planting our property. Actually, it would have made sense to start planting trees as early as possible.\nHowever, we didn\u0026rsquo;t know exactly where trees might be destroyed when the house was built and we didn\u0026rsquo;t have any water on the property to begin with. In the meantime, the lake has been finished and water is available, so you could always fetch water from the lake with a watering can.\nWe grew a few plants from seed at the apartment and planted two pumpkins on our property the day before yesterday. Let\u0026rsquo;s see what happens to them and whether they will survive on their own.\nWe\u0026rsquo;ll start the actual planting when the construction work is finished and we\u0026rsquo;re living in our house. Then it will be easier for us, we\u0026rsquo;ll be on site and can take care of everything straight away. We should also have running water by then and two taps have been installed on the outside of our house for the garden.\nWe will be planting a number of trees, including fast-growing varieties such as bamboo and eucalyptus. So we can all look forward to seeing how our plot will develop over the next few years.\nThe first vegetables will of course be planted soon, because it would be nice if we could eat more and more from our own garden. We have already grown tomatoes, mango and pumpkin in the apartment as an experiment. An avocado is currently growing and the passion fruit has unfortunately died.\nBuilding our own furniture in Paraguay # In my last blog post I wrote that we would have our furniture built to our specifications in the carpentry workshop. This has now changed fundamentally. We have already received the sideboard we ordered and it is in our apartment.\nIt turned out very nicely and was planned in such a way that it will also fit into our own house later on. We have now decided to build our furniture ourselves. I\u0026rsquo;ve ordered some extra tools for this and I think we\u0026rsquo;ll manage quite well with them.\nAs soon as our house is ready for us to move in, I will start building our furniture. This will certainly be just as interesting and I will be happy to write about it on my blog and show you the pictures.\nWe already have plans ready for the first pieces of furniture. As soon as our carport is finished, I want to set up a small workshop in the rear area. For the moment, I\u0026rsquo;m building our furniture in a room in our house.\nThe current situation in Paraguay # How are we currently feeling in Paraguay? # In March 2020, the worldwide restrictions began, which we unfortunately also felt in Paraguay. Thankfully, we live on a large estancia of around 16 km² and always had enough space to move around without restrictions.\nSo we were never locked up in our apartment the whole time. I didn\u0026rsquo;t go out shopping at first. We wanted to wait and see what happened.\nAt some point, I occasionally went shopping in the next town again and since May 4, 2020, the lockdown restrictions have been eased in various phases. Phase 3 starts next week and we\u0026rsquo;ll see which restrictions are still relevant.\nHow are we currently living in our tiny apartment? # I have to admit, it\u0026rsquo;s getting more and more stressful and the size of the apartment alone doesn\u0026rsquo;t really matter. Because when I compare it with our motorhome road trip last year, our motorhome was definitely smaller and we were fine most of the time.\nHere in the apartments, however, you wouldn\u0026rsquo;t want to live in them for more than three months and, as I mentioned, we\u0026rsquo;ve been living in them for over seven months.\nWe just miss the privacy, that\u0026rsquo;s basically it. You generally have peace and quiet in the apartment as long as nobody knocks on your door. However, people have come in twice just like that. As soon as we leave the apartment, it usually doesn\u0026rsquo;t take a few minutes before you\u0026rsquo;re spoken to again or involved in a conversation.\nWe have children and they also need our attention. Unfortunately, it\u0026rsquo;s rarely possible to sit on our terrace in peace, as people often walk across our terrace or garden. It\u0026rsquo;s not unusual for us to get involved in a conversation again, even when we\u0026rsquo;re eating, and I don\u0026rsquo;t think anyone can stand that for long. \u0026#x1f61e;\nWe have a very large area for walking and we can usually be alone there. But even here it has happened that people just join us and walk along.\nThis makes it impossible for us to have conversations as a family. After all, the completion of our house is getting closer and we can see that we will be able to move soon. Until then, we just have to pull ourselves together and get through this time somehow.\nThis lack of privacy has certainly prompted some people to leave El Paraiso Verde permanently and move somewhere else, especially if you don\u0026rsquo;t know when you will be able to move into your own property.\nThe excitement of having our own home # Fortunately, we have been working from the very beginning to ensure that we can move into our property as soon as possible. We have so many things in mind with our planning and what else we want to do on our property. As soon as we get into action, a lot of the weight will fall off our shoulders again and we can continue to work on our goal with fun and happiness. \u0026#x1f60d;\nI will report again as soon as I can write a new blog post on my notebook. I would have loved to take more videos of the apartment, but unfortunately I don\u0026rsquo;t really enjoy it because of the lack of privacy mentioned above and then it\u0026rsquo;s best to forget about it.\nAs soon as we have more peace and quiet and are on our property, I will hopefully be able to make up for it. And now, as promised, here\u0026rsquo;s my latest drone flight over our house without a roof.\nSee you soon and best wishes from Paraguay from Sebastian\n","date":"14 June 2020","externalUrl":null,"permalink":"/posts/house-construction-in-paraguay-part-2/","section":"Posts","summary":"We have been living in Paraguay for over seven months now and today I would like to write an update on our house construction and also report on how we are doing with the current situation.","title":"House construction in Paraguay Part 2","type":"posts"},{"content":"We have been living in Paraguay for four months now and have settled in well, we don\u0026rsquo;t want to go back to Germany. The last few months have been very busy with our landscaping and planning for the house construction.\nOnce our plans were finished and approved, we finally started the construction of our house in Paraguay. Initially, we didn\u0026rsquo;t think that so much time would pass before construction started, but things always turn out differently than planned.\nOwn house design # We actually wanted to have a house built with a standard plan. However, we were lucky enough to be presented with a great floor plan at the end of last year, which we liked so much that we wanted to create our own plan for our house.\nThe floor plan was perfect in this case, as it had three rooms of the same size and the living room and kitchen combined in one larger room. The only thing that bothered us were the two external doors for the storage room and the laundry room.\nHowever, I came up with a good solution and was able to remove both external doors, making one room out of the two rooms and accessing them via our bathroom.\nBut that was just the start of the planning. We drew in windows and doors, the positions of the air conditioning units and created a separate plan for the electrical installation in our house. In each of the bathrooms, we wanted to have a niche as a storage area in the showers, as well as a separate wall as a dividing wall and so on.\nAt the same time, we selected matching tiles, faucets and sinks. However, it will take some time before these are installed.\nThe concrete floor slab is finished # Construction started just over a week ago. The floor slab has been finished since Friday and now we are taking a break for two to three weeks until the bricklaying work continues on our construction site.\nIt\u0026rsquo;s very interesting to see your own house being built, which you\u0026rsquo;ve only seen on paper or on screen so far. It remains exciting and I will monitor and document the progress.\nUntil then, we will continue to live in our apartment. We now also have a minimally equipped kitchen and can cook for ourselves. We usually go shopping in Caazapá and about twice a month to Villarrica to a larger supermarket.\nWe bought a car at the beginning of the year and are therefore also mobile as a family in Paraguay. The apartment is quite small for four people, but we are very close to our construction site and already have great neighbors around us. We have to make good arrangements, sometimes it is exhausting with the children in such a small space, but time will change and we can look forward to our own house more than ever.\nWe are slowly starting to design the garden, what do we want to plant where? We have enough space on our 2500 square meter plot to let ourselves go crazy. I think we\u0026rsquo;ve positioned our house quite well and a carport is to be built next to it. We are still in the planning process and will have this calculated soon.\nOur wastewater system, a three-chamber septic tank, will be installed in front of the carport. To the right in the corner of our property is the lake, which we share with three other neighbors. The rest of the property is therefore still free for planting and other ideas that we are sure to come up with.\nOur children would probably also like to have a small playground with a slide, swings and climbing facilities. Maybe dad will have something to climb on in the garden too?\nHave your own furniture built in Paraguay # We are also already planning our furniture, as we are having everything built in the carpentry workshop according to our specifications as far as possible. We have already placed the first order for a sideboard, which we can use in our apartment.\nThe other plans are all to be built in a similar and coordinated style. We will also be adding cabinets for clothes, beds, cupboards for the bathrooms, kitchen furniture, etc. We have already ordered terrace furniture in Asunción, as we wanted to use it on the terrace of our apartment.\nThe container shipment has arrived # Our boxes from Germany have now also arrived. We have already unpacked some of them and stored them in the furniture in the apartment. We have temporarily stored some of the boxes elsewhere as we will only use them in our own house.\nSofia\u0026rsquo;s running bike has finally arrived and she\u0026rsquo;s really enjoying riding it here. Unfortunately, she hardly had any opportunity to learn in Germany, but here she got the hang of it straight away.\nIt hasn\u0026rsquo;t rained for a while, so it\u0026rsquo;s very dusty at the moment and we are cleaning almost every day. It\u0026rsquo;s still nice and warm at over 30°C during the day, which we really like. At night it is already cooling down to 20°C, but this could change again before winter starts here soon.\nWe are looking forward to the winter in Paraguay, it will be our first winter in this country. I will certainly write another update about our house construction in Paraguay soon, so check my blog from time to time to make sure you don\u0026rsquo;t miss anything. See you soon!\nBest regards\nSebastian\n","date":"8 March 2020","externalUrl":null,"permalink":"/posts/house-construction-in-paraguay-part-1/","section":"Posts","summary":"We have been living in Paraguay for four months now and have settled in well, we do not want to go back to Germany. The last few months have been very busy with our landscaping and planning for the house construction.","title":"House construction in Paraguay Part 1","type":"posts"},{"content":"We registered our departure from Germany on November 6, 2019, and moved to Paraguay. We have been living here for almost a month now and have gradually but steadily settled in.\nAfter our long road trip across Spain and Portugal in our motorhome, we faced some more stress in Germany while finishing the last tasks before embarking on the long flight to South America. Today, I would like to share a little about that with you.\nThe idea of moving to South America, or specifically to Paraguay, came to us in mid-2017. We actually just wanted to see if such a move would be possible for us at all; if it was, we planned to set up a second base first and then consider emigrating in about five years. By the end of 2017, we had prepared everything for our first trip to Paraguay.\nThe first trip to Paraguay # In March 2018, the time finally came: we flew for the first time with our one-year-old daughter on such a long journey. From Frankfurt to Madrid, and then from Madrid to Asunción – the flight alone lasted 16 hours.\nWe had certain ideas about Paraguay and wanted to go there to see whether our expectations matched the reality. Additionally, we all applied for permanent residency permits in Paraguay.\nWhen we returned to Germany, we were sure that we could live there—and we really wanted to. After a few more weeks, we realized that we didn’t want to wait another five years. So we started working on getting back to Paraguay as quickly as possible and this time, we definitely didn’t want a round-trip ticket.\nEmigrating to Paraguay # In the end, it took almost another year and a half to get everything sorted out in Germany. We had to sell the garden, the apartment, reduce the amount of furniture, pack a portion of it, and ship it as extra cargo. Finally, we sold the camper van and packed another part of the furniture; the remaining items were then stored in suitcases for travel.\nWe stayed with friends until the day of our flight and were able to prepare for the journey very well. We had four large suitcases, three carry-on bags, and two backpacks. All existing contracts were cancelled.\nWe rented a minibus and checked out of our accommodation in Germany on the 6th of November 2019. In the morning, we drove to Frankfurt Airport, where we returned the rental car. Then we flew for approximately 2.5 hours to Madrid. Unfortunately, the connecting flight there was delayed by over an hour. After that, we continued our journey by plane for another 12 hours to Asunción.\nFinally arrived in South America # When we landed in Asunción, we were very happy to finally be there, but there were still a few important things we needed to take care of in the capital.\nAfter that, we continued on our way and arrived at our apartment in the evening. We are currently living in a small apartment until we build our own house later on. In the month that we have been here, we have been able to get quite a few things done.\nDriver\u0026rsquo;s license in Paraguay # We both obtained our separate driving licenses for motorcycles and cars on our own. It cost about 45 euros per person. After that, I immediately bought a motorcycle, which was delivered the next day.\nFirst of all, I had to learn how to ride a motorcycle, since I’ve never done it before. I also needed to get used to the gear shifting mechanism. But now I’m doing quite well at it. On the racing track, you can quickly learn how to ride properly too.\nA few days ago, Stefanie also got a motorcycle, so now we’re independent and can easily go shopping in the nearest town. Alternatively, we could also rent a car; next year, we’ll consider buying our own car.\nOne more permanent residence permit # Liam was born a bit later, so he wasn’t with us on our first trip. As a result, he doesn’t yet have a permanent residence permit for Paraguay. We recently applied for one, and now the whole process is officially in progress. Eventually, he will also receive his own Cedula (the official identification document in Paraguay).\nTranquilo \u0026#x263a;\u0026#xfe0f;\nWe finished planning the landscaping for our property today. I think the excavators will arrive soon, and I’ll be able to take some interesting photos of the construction beginning. After that, our house can be built; we already have clear ideas for that as well. I’ll keep you updated on everything.\nOtherwise, we’re enjoying our time in Paraguay. It’s beautifully warm, with temperatures above 30°C; while winter is approaching in Germany, we have summer here.\nIn addition, I will continue to work on my online business, which is what has made all this freedom possible for us. I will post more articles on my blog, and if you have any questions, feel free to contact me as well.\nI wish you the greatest success, and may all your dreams and wishes come true.\nBest regards,\nSebastian\nThis article was translated from German to English md-translator v1.2.3 | More Information ","date":"6 December 2019","externalUrl":null,"permalink":"/posts/move-to-paraguay/","section":"Posts","summary":"We departed Germany on November 6, 2019, and moved to Paraguay. We have been living here for almost a month now, and we are gradually getting used to the new surroundings.","title":"Moving to Paraguay","type":"posts"},{"content":"","date":"26 de November de 2019","externalUrl":null,"permalink":"/es/series/roadtrip-espa%C3%B1a-y-portugal/","section":"Series","summary":"","title":"Roadtrip España Y Portugal","type":"series"},{"content":"","date":"26. November 2019","externalUrl":null,"permalink":"/de/series/roadtrip-spanien-und-portugal/","section":"Series","summary":"","title":"Roadtrip Spanien Und Portugal","type":"series"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/series/road-trip-spain-and-portugal/","section":"Series","summary":"","title":"Road Trip Spain and Portugal","type":"series"},{"content":"Today I\u0026rsquo;m writing the last part of our motorhome road trip through Spain and Portugal. The end in France was more like a vacation, as we stayed at the same campsite for a long time.\nIn the meantime, we were already back in Germany. Nevertheless, I don\u0026rsquo;t want to withhold the last part from you. First and foremost, I\u0026rsquo;ll continue with a new series on my blog.\nWe left earlier than planned from Camping Torre la Sal 2 and received a refund accordingly, but this campsite was simply too busy and too touristy for us, and ultimately this place had nothing to offer in terms of the landscape. It is still a mystery to me what attracts people there.\nThe last campsite in Spain # We therefore drove on to the next and last campsite in Spain called Bella Terra. We liked it there even more, the pitch wasn\u0026rsquo;t quite as nice but there was a large playground nearby. The sanitary blocks were well equipped and clean. There was a modern swimming pool and you could go to the beach.\nThere were a few stores outside the campsite and a Consum supermarket a little further away but still within walking distance. After three days we drove on again because a storm with heavy rain was forecast in Spain. As it turned out later, this was a very good decision, as the media were talking about high water and flooding.\nThe last stage in France # We arranged to meet our former neighbors in France at a campsite and drove to Camping Nouvelle Floride for another six days. It later turned out that they were at the campsite next door, as they unfortunately gave us the wrong name. However, this wasn\u0026rsquo;t a big deal as the three campsites on the spot belong together and you have access to all three and can use the swimming pools. We did a few things together and had a great time. The area is again rather touristy and crowded with vacationers, but it was fine.\nAfterwards, we wanted to meet up with Stefanie\u0026rsquo;s sister and brother-in-law somewhere in France and spend their vacation together. We looked at a few campsites where dogs are also allowed on the beach. In the end, they joined us and we drove a little further to Camping Beach Garden, which is also part of the Camping Les Méditerrannées network.\nHowever, this campsite was a little more comfortable than the previous one and we stayed there for a whole two weeks. We had two pitches next to each other and had a great time together. They even had a raclette grill as a surprise and we were able to eat raclette in front of their caravan. It was a dream to repeat. \u0026#x1f60d;\nAfter the two weeks, we made our way back to Germany together. We decided to take the toll-free roads again and made a stopover at Château Camping de la Grange Fort. This was an interesting campsite with a castle but unfortunately a bit loveless and run-down, maybe it was just because the season was already over. I don\u0026rsquo;t know exactly, but it was fine for one night, even if it was too expensive for me.\nThe next morning we had to say goodbye as we didn\u0026rsquo;t want to go straight to Germany. We planned another stopover in Dole at Camping Du Pasquier. We arrived at the perfect time, as there was a town festival and we got a free pitch on the campsite. In the evening we walked around the festival in the beautiful old town and had a great time at the end of our long journey.\nIt was hard to believe but now we were actually heading back to Germany. The next day we drove on to the German/French border and spent another night on French ground, the familiar motorhome site from April.\nWe walked to Breisach to have an ice cream. However, the weather wasn\u0026rsquo;t great and we got back to the motorhome just in time for it to start raining.\nThe next day we drove to Eschbach to the parking space in the Breisgau business park because we had an appointment for the first inspection of the motorhome at Fiat Professional in Auggen the next morning.\nEverything went perfectly and we were able to visit friends in Eschbach after the successful inspection. After two nights there, we drove back to the pitch in France, which is in a great location on the border with Breisach and has everything we need on site.\nWe used the time in our old home town to say goodbye to friends and family. We often spent the night right on their doorsteps, for example at my sister\u0026rsquo;s and my mom\u0026rsquo;s house.\nWe had invited my dad for dinner in Breisach, so we walked back to the motorhome in the evening. In the meantime, we also spent another night in Freiburg at the Hirzberg campsite, where I took advantage of the proximity to the city to have another beer with my former work colleagues. \u0026#x1f37a;\nAfter visiting everyone, we set off in the direction of Münster. Of course, we wanted to sell our motorhome there as quickly as possible. Luckily, I had already advertised our motorhome on mobile.de at the beginning of our trip and so I had a few interested people listed who I was able to contact after our arrival in Münster.\nThis later turned out to be a very wise decision. Nevertheless, we took our time and didn\u0026rsquo;t hurry, driving the route in several stages.\nThe first stop was in Heidelberg at Campingplatz Friedensbrücke. It was wet and rainy but briefly dry and we took the bus to Heidelberg for lunch and had a look around the city until it started to rain again.\nNext we drove to Wetzler and spent the night at the Lahninsel parking lot. Wetzlar also has a beautiful old town that is definitely worth a visit.\nSale of the motorhome and the end of our road trip # At the end of our journey, we spent three nights at the Pitch in Haltern am See. These were also our last three nights in our own motorhome. It was a slightly sad feeling, but we knew that a new chapter in our lives would begin later.\nThe weather was mixed and we made the best of it. After these three days, our motorhome journey of 8400 km ended in Münster and I spent the first two days completely emptying the motorhome. On the third day, I started cleaning the inside and outside, while at the same time making appointments with interested buyers. After the first appointment, the motorhome was already sold and the new owners are now very happy with this wonderful motorhome.\nOctober was another very stressful month for us and we were very happy once we had finished everything. Nevertheless, we were able to switch off from time to time and enjoy the quality time with our friends in Münster. It is wonderful to have such friends and we are very grateful for that. Most of the weekends we had great food and drinks with nice get-togethers.\nWe had an incredibly great time that we will probably never forget in our lives. We lived in the motorhome for six months at a time and went to many different places. It was simply a dream and the decision to take this step was definitely worth it. Of course, I also hope that you enjoyed my 4 parts about our motorhome trip.\nHere are the links to the first three parts if you haven\u0026rsquo;t read them yet:\nRoad Trip trough Spain and Portugal in a motorhome part 3 Road Trip trough Spain and Portugal in a motorhome part 2 Road Trip trough Spain and Portugal in a motorhome part 1 We have already left Germany. More about what we are doing now and where we are will be in a coming blog post. Until then, I hope you have a great time and I would be delighted if you would visit my blog again soon. It will definitely remain interesting.\nBest regards\nSebastian\n","date":"26 November 2019","externalUrl":null,"permalink":"/posts/road-trip-trough-spain-and-portugal-in-a-motorhome-part-4/","section":"Posts","summary":"Today I am writing the last part of our motorhome road trip through Spain and Portugal. The end in France was more like a vacation, as we stayed at the same campsite for a long time.","title":"Road Trip trough Spain and Portugal in a motorhome part 4","type":"posts"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/categories/roadtrip/","section":"Categories","summary":"","title":"Roadtrip","type":"categories"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/tags/roadtrip/","section":"Tags","summary":"","title":"Roadtrip","type":"tags"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/tags/travel/","section":"Tags","summary":"","title":"Travel","type":"tags"},{"content":"","date":"26 November 2019","externalUrl":null,"permalink":"/tags/vanlife/","section":"Tags","summary":"","title":"Vanlife","type":"tags"},{"content":"Some time has now passed and we have already arrived back in Spain \u0026#x1f1ea;\u0026#x1f1f8; and are almost back in France. At least we plan to be back in France \u0026#x1f1eb;\u0026#x1f1f7; by September 15, 2019 at the latest.\nIn October we want to reach Germany \u0026#x1f1e9;\u0026#x1f1ea; for our final conclusion to this great motorhome trip. But first I\u0026rsquo;ll tell you what we\u0026rsquo;ve experienced so far.\nCamping at a Lidl parking lot # We had looked around Faro but unfortunately we hadn\u0026rsquo;t found a place to spend the night and didn\u0026rsquo;t want to stay right next to the road to sleep. As we came back too late from the city tour, the next planned motorhome pitch was already closed and I wasn\u0026rsquo;t sure whether we could still arrive.\nSo we decided to spend the night at the Lidl parking lot a few villages away. They had 4 pitches there especially for motorhomes and we weren\u0026rsquo;t alone that night. It was a bit noisy and hot there too. The next morning we did some shopping at Lidl and then drove on to Spain.\nSeville is a beautiful city in Spain # When we arrived in Spain, our first stop was at the recently built Camper Park Playas de Luz near Isla Christina for two nights. We then went on to Seville and slept in the Port of Gelves, which was a great pitch with electricity and bathrooms as well as supply and disposal included.\nWe were able to take the bus to Seville and the city really is a dream. Very beautiful historical buildings combined with modern ones and there was absolutely no stress in the city. I liked Seville very much and this stay was more than worth it.\nWe then wanted to drive on towards Gibraltar and had a stopover in Sanlúcar de Barrameda on a pitch. However, this was actually more of a campsite with lots of caravans and loud locals with no respect for the other campers.\nIt was awful and we drove away the next day. The area outside the pitch was also desolate and very dirty. So we had to leave!\nCamping pitch at the harbor in front of Gibraltar # In front of Gibraltar we stood in a harbor again. Some people must have had a good idea to use these areas as pitches for motorhomes. The border to Gibraltar is at La Linea in Spain. We were able to walk to Gibraltar, but unfortunately we didn\u0026rsquo;t have a passport for Liam yet, so he wasn\u0026rsquo;t allowed to cross the border with us.\nI then walked to Gibraltar alone with Sofia, directly across the runway from the airport and then on through the walkway to the cable car to get to the top of the rock and see a couple of monkeys. Sofia certainly had fun with the monkeys and we also had a great trip.\nAfterwards, we walked back to the pitch. We had no electricity and were therefore off-grid for another two nights. However, there was a supply and disposal point, as well as a wash house with a washing machine and dryer. There was also a toilet but unfortunately no shower.\nThe wash house was locked in the evening and only opened again the next morning. However, I found a shower outside the harbor directly at a traffic circle, where we always showered later on.\nRonda with the new bridge is also worth seeing # Maic gave me the tip to visit Ronda, so the next stop was Ronda on the Honda. No, by motorhome of course and we found a brand new pitch right next to the campsite.\nIt was wonderful and we were completely alone most of the time. We walked into the center of Ronda a few times and I was able to take some nice photos again. This stopover was also worthwhile for us and we had a very nice stay.\nNext, I actually wanted to visit someone in Marbella, but unfortunately there was no space left in the parking lot we had previously chosen and it wasn\u0026rsquo;t easy for us to park our motorhome anywhere in the high season. We decided to drive on and postpone the meeting in Malaga. Unfortunately, it didn\u0026rsquo;t happen, which was a bad thing.\nHowever, we found a quiet parking space near Los Rubios and stayed there for three nights. We were able to take the bus to Malaga in 45 minutes and sightsee the city. Malaga was beautiful but we hadn\u0026rsquo;t been swimming since Portugal and unfortunately hadn\u0026rsquo;t seen any nice beaches so far, so we chose a pitch with a nice beach nearby as our next destination.\nSwimming in the sea with a pebble beach # We drove to Castell de Ferro to a pitch with a pebble beach, so the sea was pretty clear. We were in the first row to the sea and were in the water very quickly. We stayed for three nights and then drove to the next beach in Agua Amarga. Another pitch for three nights and everything was fully booked.\nThe high season is quite stressful for campers, but we have always found a pitch so far. Agua Amarga is a small but cute little town in classic Andalusian style. On our departure, we drove over a beautiful pass road towards Aguilas and it was much more fun than driving on the highway. By the way, we haven\u0026rsquo;t paid a single cent in tolls on our trip so far.\nWe spent one night on a pitch behind the petrol station with electricity and everything else you might need. There was a beautiful beach within walking distance and we went for a long swim. Showers cost 2 euros and that was the most expensive thing so far. Unfortunately there was no beach shower here, otherwise I would have showered there of course.\nWe continued our journey to Los Alcázares to a campsite that is mainly powered by solar energy. The site was still relatively new and beautifully laid out. The beach was mainly for kite surfers and swimming would have been too dangerous. The area was also rather dirty again and in the immediate vicinity is the military airfield of Murcia, on our arrival we once saw a jet take off.\nLong sandy beach in El Campello near Alicante # Now we went on to Alicante, where we stood on a pitch near El Campello. We stayed at the Area 7 motorhome site for 6 nights and were pleasantly surprised. The site really had everything and it was very easy to walk to the Mercadonna and the kilometer-long beach.\nWe walked to the beach every morning after breakfast with the handcart and were able to swim in the sea. Once we took the bus to Alicante for dinner and had a delicious pizza. We returned to the motorhome late in the evening and everything went really well, even with our children.\nNext we went to Camping Sol de Calpe for three days. There was a family park next door, similar to a fair, with a correspondingly loud noise level until 1am, but it was okay. There are various beaches on site, a Lidl supermarket just around the corner, the nature reserve with lots of flamingos and of course the small Gibraltar rock called Ifach, which I wanted to climb up once.\nUnfortunately, I had to stop early because I was first on the wrong path and then had to turn back 500 meters before my destination after the correct climb because it was simply too dangerous for me in the dark. We also had our first paella de verduras in Spain in Calpe and it was delicious.\nWe visit grandpa in Denia # The time had finally arrived and we were allowed to visit my grandpa in Denia. During this time, the motorhome was parked on the street in front of the house and we slept downstairs in his apartment. Grandpa cooked for us a few times, once we had a mixed paella and once we went to the WOK to eat at the rich buffet.\nWe had a lot of fun, talked late into the night and the next morning we had to get up as soon as the children woke up. Grandpa was of course allowed to sleep in and it was not unusual for him to have breakfast when we were already at lunch.\nHe also showed us some of the backcountry in Denia, such as the bodega in Jalon and the spring where he always gets his water, as well as a rustic restaurant on the mountain. We had a great time and left after a week. In Denia, I was also able to give the outside of our motorhome a good wash, as we are now starting camping again.\nContinue with the motorhome towards Germany # Our first port of call was a pitch in Daimuz, not far from Gandia. There was another kilometer-long beach, but this time we didn\u0026rsquo;t go swimming. We ate paella de verduras again and had a large pan to ourselves.\nWe stayed for two nights and were very happy. The owners here spoke German and were quite friendly. It\u0026rsquo;s now September and the high season is coming to an end, because from September 1st the ACSI Card will be valid again on some campsites.\nWe are currently staying at Camping Torre la Sal 2 and it\u0026rsquo;s all very touristy here. I almost lost faith when we arrived because I had to queue at reception for a long time to be able to register. The traffic had to be regulated because everything is so narrow here and it can quickly become congested.\nI almost wanted to leave, but we had promised Sofia that she would have lots of opportunities to play on this campsite. We\u0026rsquo;re staying here until Sunday but it still feels like high season and the disco goes on until 4am, so there\u0026rsquo;s a lot going on.\nThe price with the ACSI Card is also outrageous at 20 euros and we pay an extra 9.90 euros for our two-year-old daughter, although all the activities for children are only available from the age of 3. Well, that\u0026rsquo;s just the way it is, but I think she likes it and has fun.\nWhere are we going next? # Our next stop will definitely be a campsite in Spain, where we\u0026rsquo;ll stay for a maximum of a week and then we\u0026rsquo;ll drive on to France. Maybe there will be a stopover at a pitch, we\u0026rsquo;ll decide that spontaneously.\nIn France, we\u0026rsquo;ll probably meet Stefanie\u0026rsquo;s sister at a campsite and spend our vacation with them. It will last until the end of September and then we\u0026rsquo;ll drive back to Germany, certainly not in one go and with one or two stopovers at campsites.\nOnce we arrive in Germany, we will sell our motorhome. I already have the ad online on mobile.de. As soon as the motorhome is sold, our next big adventure will begin, but more on that later. I will certainly write a part 4 at the end of our trip to Spain and Portugal.\nUntil then, I wish you maximum success! \u0026#x1f4c8;\nBest regards\nSebastian\nPS: In the meantime, I\u0026rsquo;ll be posting the latest locations and pictures from our trip on my Facebook profile.\n","date":"4 September 2019","externalUrl":null,"permalink":"/posts/road-trip-trough-spain-and-portugal-in-a-motorhome-part-3/","section":"Posts","summary":"Some time has now passed and we have already arrived back in Spain and are almost back in France. At least we plan to be back in France by September 15, 2019 at the latest.","title":"Road Trip trough Spain and Portugal in a motorhome part 3","type":"posts"},{"content":"After we left the campsite in Árvore, we first went back to Vila do Conde in the motorhome to go shopping. We filled up the fridge as we wanted to be somewhere off the roads for the next few days and we like to have enough food and drink with us.\nProvided we get our German gas bottle filled up in Portugal, because when we\u0026rsquo;re camping we need the gas for the fridge and for cooking.\nRefill German LPG bottles in Portugal # I wasn\u0026rsquo;t sure whether it would all turn out right. First you have to find a gas station and then the Portuguese have to have the necessary adapter to refill the German gray 11 kg LPG bottle.\nI had previously found a map on the Internet with the relevant gas stations that can provide this service in Portugal and so we then drove on to Arada (south of Porto in Ovar) to Autogas Cuco.\nI was very happy when the local colleague understood what I was looking for and left with our empty LPG bottle. He filled the 11 kg bottle for 21 euros and we were able to continue with our plan to stay somewhere for the next few days and enjoy the time in comfort.\nAfter refilling, we drove a few kilometers from the gas station to the sea at Praia de Cortegaça for dinner and a good night\u0026rsquo;s sleep. It was very pleasant, right by the sea with a beautiful sunset and the constant sound of the sea.\nAt night, a few cars came and went, which can be scary when you\u0026rsquo;re sleeping alone in a motorhome. They were probably either fishermen or people who got lost there at night?\nFreestanding with the motorhome in Portugal # We had a relaxed breakfast in the morning and then set off. I was recommended to drive to Aveiro, the Little \u0026ldquo;Venice\u0026rdquo;. No sooner said than done. There was a motorhome parking lot right next to the highway bridge. It was a bit noisy and scary with caravans that seemed to be parked there permanently.\nWe didn\u0026rsquo;t want to leave the motorhome there unattended, so unfortunately it was just me who went into town and took a few pictures for us. As a surprise, I gave everyone an ice cream afterwards.\nAs always, the road to Aveiro was quite easy to drive, but finding a parking spot for the motorhome in the narrow streets was a real pain. I drove with the sat nav and at some point we came to a bridge that we were supposed to cross, but I wasn\u0026rsquo;t sure whether I was allowed to drive over it with the motorhome.\nIt was quite small and the traffic sign in front of it confused me. So I drove on, simply ignored the navigation system and the route was recalculated. It will go on somehow, I thought to myself, and the roads got narrower and narrower. \u0026#x1f648;\nWith the motorhome through narrow streets # At one point it happened, we were practically stuck. On the left was a van on which I unfortunately couldn\u0026rsquo;t fold in the wing mirror and on the right was a stop sign that protruded too far onto the road. Then came the wall of a house and a sewer in between.\nI couldn\u0026rsquo;t move forwards or backwards and was getting a bit nervous and annoyed because I couldn\u0026rsquo;t fold his mirror in. At least I was able to fold our mirror in to get past it and then fold it out again straight away. However, the rear side wall was only a few millimetres away from the van\u0026rsquo;s wing mirror and there were no millimetres left between the awning and the stop sign on the right.\nThe awning was now the problem and the next cars were already coming up behind, which slightly increased my sweat production. But it didn\u0026rsquo;t help, I had to stay cool and get through somehow. Fortunately, two local residents came to help and also saw that I couldn\u0026rsquo;t get through.\nOne of them and Stefanie pushed the stop sign aside as best they could and I drove past it very slowly. We had made it and continued on, but unfortunately we were not yet on the main road.\nThere were a few more narrow alleyways but luckily we could fit through them all. Here is a picture of the narrow streets, unfortunately there was no picture of the previous situation, we were both just too excited and busy.\nWe didn\u0026rsquo;t want to sleep on the highway bridge, so we drove on. That was definitely a good decision, because we came to a beautiful beach near Vagos and spent the night behind the dune.\nThis time we weren\u0026rsquo;t completely alone and a few other campers also slept there, but the area was so large that it was very well spread out. But here, as well, cars arrived from time to time at night. Nevertheless, we slept very well and enjoyed a cold shower on the beach the next day. After breakfast, we set off again.\nOur next destination was a large parking lot right by the sea near Figueira da Foz, but somehow we didn\u0026rsquo;t like it for sleeping. We took a nap after lunch and then continued on to the free Costa de Lavos motorhome parking area. I drove past it by mistake and had to turn around in the next village, where it stank horribly.\nI don\u0026rsquo;t know how to describe it, but I would say it smelled extremely strongly of concentrated broccoli water. I have no idea what kind of industry it was and the next morning the wind was blowing in our direction. It was a bit unpleasant in the morning and we drove straight on to Nazaré after breakfast.\nThe biggest surfable waves in the world in Nazaré # Unfortunately, there are no big waves to be seen at this season and somehow I didn\u0026rsquo;t like the place for sleeping. It may well be a paradise for surfers. Nevertheless, we had lunch and a nap there and then drove to Peniche to the lighthouse for the night.\nAlthough we had a cozy camper next to us, the sunset was a dream and we could look directly out the front window at the sea and the sunset. This definitely makes dinner even more enjoyable. We had a good night\u0026rsquo;s sleep, although cars arrived here at night too.\nIt seems to be common in Portugal for people to either take a drive around the traffic circle or for fishermen to actually come fishing. I was awake relatively early in the morning and was therefore able to take some beautiful pictures of the sunrise.\nAfter four nights without on-grid power, we wanted to go to a campsite again to recharge the batteries and, most importantly, take a proper shower. We don\u0026rsquo;t have any solar panels on the roof, but we don\u0026rsquo;t use very much electricity either, so we could probably have done without electricity for a few more nights. The showers were the most important thing for us, as we had never showered in a motorhome before.\nBeautiful view of the sea # We stayed for one night at a relatively new campsite near Setúbal and were initially delighted with the great view of the sea and the container ships passing by. But unfortunately there were a lot of flies, the pitch was too expensive and you pay even more for motorhomes over 6 meters in length.\nI don\u0026rsquo;t know why, because you stand on the same pitches as motorhomes under 6 meters. The next morning the gardeners came with power shears and trimmed the hedges right next to the campers. I\u0026rsquo;ve never seen that anywhere else and we decided to drive on.\nArrived in the Algarve in Portugal after over 4000 km by motorhome # Our next destination was the Algarve, actually our main destination in Portugal. On the way there, we took a lunch break somewhere in the middle of nowhere. We then drove straight to the motorhome park at Praia da Falésia.\nWe stayed there until today and tomorrow we want to drive on towards Faro. The beach and the sea here are beautiful and we had a great and relaxing time during our two weeks here. We were able to drive to various destinations from here.\nWe took the motorhome to Praia da Marinha, an even more beautiful beach with its bays and rocks - simply a dream. Unfortunately, others now know this too and so everything there is very crowded and there is a parking ban for motorhomes from the road to the beach.\nIn general, it is not allowed to stay overnight anywhere in the parking lots near the beaches during the high season. The police often drive past and I have heard that it can cost a penalty of 150 euros.\nSo it was good for us to have a place to retreat to at the motorhome park. Incidentally, we also had everything included for just 9 euros a day. There is a bus stop right at the entrance and we went on an excursion to Albufeira one day.\nSoon we\u0026rsquo;ll be traveling back to Spain with the motorhome # It\u0026rsquo;s not far to Spain now and we\u0026rsquo;ll see how long we stay in Faro from tomorrow. Otherwise, we\u0026rsquo;ll soon be heading back to Spain and exploring Andalusia next. Gibraltar is also on the list and we want to visit my grandpa in Denia at the end of August. Then we\u0026rsquo;ll drive back along the Mediterranean coast towards Germany.\nThere are certainly some nice campsites in Spain and France in the off-season with the ACSI Card that we can visit on our trip. I will therefore probably write a third part about our trip through Spain and Portugal.\nBest regards\nSebastian\nPS: In the meantime, I\u0026rsquo;ll be posting the latest locations and pictures from our trip on my Facebook profile.\n","date":"21 July 2019","externalUrl":null,"permalink":"/posts/road-trip-trough-spain-and-portugal-in-a-motorhome-part-2/","section":"Posts","summary":"After we left the campsite in Árvore, we first went back to Vila do Conde in the motorhome to go shopping.","title":"Road Trip trough Spain and Portugal in a motorhome part 2","type":"posts"},{"content":"During our motorhome road trip to Spain \u0026#x1f1ea;\u0026#x1f1f8; and Portugal 🇵🇹, we would of course also like to have access to fast and decent internet. I looked at a few options beforehand but didn\u0026rsquo;t know how and whether everything would run so well abroad. In the end, we used a very good option in Spain \u0026#x1f1ea;\u0026#x1f1f8; which we are now using.\nOf course, we have our smartphones with the German SIM cards with us and nowadays roaming in the EU no longer costs anything extra. However, German rates for mobile Internet are relatively expensive and usually limited.\nWe both have prepaid cards from congstar and I pay 10 euros a month for an Allnet Flat and 1.5GB data volume. This can be used without any problems in other European countries 🇪🇺, but the 1.5GB is not enough for me for very long.\nIn Germany, we also used the GigaCube from Vodafone with the prepaid plan for 35 euros a month and 50GB data volume. I once wrote about this in a blog post, as we mainly bought it for the garden at the time.\nUnfortunately, Vodafone doesn\u0026rsquo;t allow roaming on this plan, so we can\u0026rsquo;t use it abroad either.\nMobile Internet abroad thanks to Simyo Spain # The solution for this is a Spanish SIM card from Simyo with a prepaid plan, which also works without any problems in our GigaCube and we have super-fast Internet in Spain.\nI chose the option with 28GB data volume for 17 euros a month. I think we\u0026rsquo;re doing quite well with it and we can also use the card in Portugal, as Simyo allows roaming on this plan.\nThere are various stores where you can get a SIM card from Simyo. I went to a BEEP Shop and they helped me very well. I was able to speak English with the sales clerk and he even had my SIM card activated by Simyo.\nTo do this, you have to make a phone call to Simyo in Spanish. However, not all BEEP stores are the same, as I realized, because in the first store I was turned away or the saleswoman did not want to accept my German identity card.\nIn my opinion, another important point is worth mentioning, because with this plan you are not only surfing at LTE speed, but you can also continue to use unused data volume the next month.\nIn Germany, unused data volume usually expires at the end of the month to the disadvantage of the customer, as it was paid for.\nUnfortunately there are two cons with Simyo Spain # German customers with this plan have a minor disadvantage. We cannot officially download the Spanish Simyo app from the Google Play Store, as we are not allowed to install this app with the German region setting on Google.\nHowever, there is a way to download this app outside the Google Play Store and then install it manually. You can then use the Spanish app to access your subscription and see the available data volume at any time.\nAnother disadvantage is that you can top up your prepaid card in the Simyo app, but unfortunately no German credit cards are accepted. But there is a solution for this too. I recharge my credit via the service recharge.com worldwide.\nTo recharge, you select the provider on the website and enter your phone number, then you can select the amount and pay with any credit card. Unfortunately, this costs a service fee of 99 cents, but the balance is available immediately and as long as you are in Spain, you can of course buy credits locally in the stores or usually also at the gas stations.\nSo far, I am absolutely satisfied with this solution. The Internet is fast, cheap and works perfectly in our motorhome with the WLAN router and all our devices have access to the Internet.\nWhat else could you want? Usually the WLAN on pitches or campsites is extremely slow and often expensive. That\u0026rsquo;s why you are always flexible and have access to the Internet with your own mobile connection.\nKind regards\nSebastian\n","date":"8 July 2019","externalUrl":null,"permalink":"/posts/mobile-internet-in-spain-and-portugal/","section":"Posts","summary":"During our motorhome road trip to Spain and Portugal, we would of course also like to have access to fast and decent internet. I looked at a few options beforehand but did not know how and whether everything would run so well abroad.","title":"Mobile Internet in Spain and Portugal","type":"posts"},{"content":"Last year we decided to travel on a longer trip with our motorhome. As we both loved seeing Portugal, it quickly became clear to us that we would first drive south along the Atlantic and then back to Germany along the Mediterranean.\nUnfortunately, it will also be our last trip with the motorhome, as we have decided to sell it afterwards. \u0026#x1f622; The reasons for our decision will almost certainly be published here on my blog at some point.\nWe started on April 15, 2019 at home in Breisach am Rhein. However, that was just a practice run and getting ready for the trip with our two children. However, we always slept in the motorhome, either in our parking lot or in the immediate surrounding area with family or on a motorhome site in France.\nDeparture to the motorhome dealer # We didn\u0026rsquo;t actually set off until April 25, 2019 and first headed north to Öhringen to the motorhome dealer in Bretzfeld to have our leak test carried out and then to meet someone at the motorhome site in Öhringen.\nUnfortunately, the weather wasn\u0026rsquo;t particularly good and we drove on towards Münster on April 27 with an overnight stop.\nWe arrived in Münster on 28 April 2019 to visit friends of ours and take care of a few organizational issues. We also spent two days meeting other lovely people that I got to know through online marketing. We had previously leased the camping plot at the Münster campsite for a month, so we didn\u0026rsquo;t travel further south until May 29, 2019.\nThe journey with our motorhome begins # From then on, the actual road trip to Spain and Portugal began. However, we didn\u0026rsquo;t set ourselves a schedule and generally didn\u0026rsquo;t choose a site or campsite. A few days beforehand, I always checked the ACSI app to see which nice locations were around 200 km away and we drove to our favorite.\nAs it was off-season at the time, we were able to save a few bucks with the ACSI Card. We often only paid 12 euros per night at the campsites, including electricity and showers with hot water.\nWe drove from Münster to the Netherlands and stayed one night at the motorhome site. The next morning we drove on to France via Belgium and stayed at another campsite for one night.\nWe visited several campsites in France, somehow we spent longer in France than I had imagined but it was beautiful anyway. At some point, of course, we also reached Spain and visited a few campsites again and the last one was even right on the Portuguese border, the Rio Mino river.\nArrival in Portugal # Next, we drove over the bridge to Portugal and stayed a few kilometers further on at a campsite for two nights. After that, we only drove a few kilometers back because we were going to meet someone in the village.\nWe are currently still at this relatively large campsite, mainly with permanent campers and only a few tourist pitches, until probably Monday, July 1, 2019. After that, I would like to have our gas bottle refilled and stand in a free parking area in nature again.\nList of the campsites and pitches visited # I have taken the trouble to list all the campsites we have visited so far here:\nIn some cases the price includes a discount with the ACSI Card in the off-season.\nNetherlands 29.05.2019 Motorhome parking space Oirschot for 16.50 euros per night\nFrance 30.05.2019 free motorhome parking Grand-Fort-Philippe\nFrance 31.05.2019 Camping L\u0026rsquo;Oiseau Blanc for 12 euros per night\nFrance 02.06.2019 Camping du Château for 14 euros a night\nFrance 03.06.2019 Camping Aux Pommiers for 18 euros per night\nFrance 05.06.2019 Camping les Rives de Vilaine for 12 euros per night\nFrance 06.06.2019 Camping Campéole Plage des Tonnelles for 16 euros per night\nFrance 07.06.2019 Camping Le Lys Blanc for 12 euros a night\nFrance 08.06.2019 Camping Les Bruyéres for 12 euros per night\nSpanien 10.06.2019 Camping Zumaia für 20 Euro die Nacht\nSpanien 13.06.2019 kostenloser Strandparkplatz am Playa de Amio in Pechon\nSpain 14.06.2019 A Gaivota Camping for 20 euros a night\nSpain 17.06.2019 free motorhome parking Parque Da Seca\nSpain 18.06.2019 Camping Santa Tecla for 12 euros per night\nPortugal 22.06.2019 Parque Campismo De Vila Cha for 16 euros per night\nPortugal 24.06.2019 Parque de Campismo Árvore for 24 euros a night\nIn any way, it is absolutely wonderful that we were able to go on this trip and it will certainly stay in our memories forever. I will probably write about our next travel destinations in Spain and Portugal in another blog post.\nWe have planned to be on the road until the end of October 2019. So stay tuned and see you next time.\nBest regards Sebastian\nPS: In the meantime, I\u0026rsquo;ll be posting the latest locations and pictures from our trip on my Facebook profile.\n","date":"27 June 2019","externalUrl":null,"permalink":"/posts/road-trip-trough-spain-and-portugal-in-a-motorhome-part-1/","section":"Posts","summary":"Last year we decided to travel on a longer trip with our motorhome. As we both loved seeing Portugal, it quickly became clear to us that we would first drive south along the Atlantic and then back to Germany along the Mediterranean.","title":"Road Trip trough Spain and Portugal in a motorhome part 1","type":"posts"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"}]