Case study

CardRebels

A trading card business needed its own website and infrastructure. CardRebels is my own project, and here I show openly how I built it.

My own project

Starting point

A trading card business needed its own website and the infrastructure behind it. Since CardRebels is my own project, I could build everything the way I would for a client.

How it's built

Everything runs on a VPS with Docker, managed with Portainer. Nginx Proxy Manager routes requests to the individual services. CrowdSec protects the server, including over IPv6. The team uses Nextcloud for shared files and Vaultwarden as a password manager. Uptime Kuma keeps an eye on whether all services are reachable. Backups go to a separate storage server, and log rotation and regular maintenance keep it all tidy.

The mail server

The server also runs its own mail server with mailcow: Postfix and Dovecot for sending and mailboxes, Rspamd against spam, ClamAV against viruses and SOGo as webmail with calendar and contacts. More on the mail server page.

The website

I built the website with Next.js and AI assistance. I planned the infrastructure behind it myself and run it myself.

Visit: cardrebels.com

Stack

What runs on the server.

17 services, all as Docker containers on one server. Self-hosted and self-maintained.

  • Mail

    9 services

    Own mail server with mailcow: dockerized, every part in its own container.

    • Postfixsends and receives emails
    • Dovecotmailboxes via IMAP and POP3
    • Rspamdspam filter and DKIM signing
    • ClamAVvirus scanner for attachments
    • Olefychecks Office files for macros
    • SOGowebmail with calendar and contacts
    • ACMEcertificates automatically via Let's Encrypt
    • Netfilterblocks IPs after failed logins
    • Watchdogmonitors the services, restarts them if needed
  • Team

    2 services

    Collaboration tools, self-hosted instead of rented.

    • Nextcloudshare and sync files
    • Vaultwardenpassword manager for the team
  • Website

    2 services

    The CardRebels website with its own database.

    • Next.jsthe website itself
    • PostgreSQLthe website's database
  • Operations and security

    4 services

    What holds the server together, protects it and keeps an eye on it.

    • Nginx Proxy Managerroutes requests to the services
    • CrowdSecdetects and blocks attackers, including over IPv6
    • Uptime Kumachecks that all services are reachable
    • Portaineroverview and management of the containers

Tell me what you're planning.

Tell me via the form or on WhatsApp what you need. I'll get back to you with a suggested time for a free first call.

Nico Leon Wien, the person behind Wien IT Solutions