Serdar Tekin

Serdar Tekin

Co-Founder & CTO

Co-Founder & CTO at Raff, focused on cloud infrastructure, systems architecture, security, reliability, and production operations.

Cloud Infrastructure
Systems Architecture
Security
Reliability
Databases

119 articles published

Blog Posts(11)

Tutorials(22)

How to Install Ghost CMS on Ubuntu 24.04 with Nginx

Install Ghost CMS on Ubuntu 24.04 with Nginx, Node.js 22, MySQL 8, Ghost-CLI, HTTPS, backups, rollback, and current Ghost 6 deployment guidance.

intermediate

How to Self-Host Plausible Analytics on Ubuntu 24.04 with Docker

Self-host Plausible Analytics CE on Ubuntu 24.04 with Docker Compose, automatic HTTPS, protected secrets, health checks, backups, and safe upgrades.

intermediate

How to Install Coolify on Ubuntu 24.04

Install Coolify on Ubuntu 24.04 with the official installer, secure direct-access ports, configure HTTPS domains, deploy an app, and plan backups and updates.

intermediate

How to Use Raff S3-Compatible Object Storage with AWS CLI

Use AWS CLI with Raff S3-compatible object storage on Ubuntu 24.04. Configure scoped credentials, transfer files, sync safely, and create presigned URLs.

beginner

How to Install PM2 and Deploy Node.js on Ubuntu 24.04

Install PM2 on Ubuntu 24.04 and deploy a Node.js app with cluster mode, graceful reloads, systemd startup, private ports, Nginx, and safe cleanup.

intermediate

How to Deploy a Multi-Container App with Docker Compose on Ubuntu 24.04

Deploy a multi-container Docker Compose app on Ubuntu 24.04 with Node.js, PostgreSQL, Redis, secrets, health checks, private networking, backups, and persistence.

intermediate

How to Automate Rsync Backups with Cron on Ubuntu 24.04

Automate rsync backups on Ubuntu 24.04 with cron, safe --delete dry runs, locking, retention, integrity checks, restore testing, and troubleshooting.

intermediate

How to Install fail2ban on Ubuntu 24.04 for SSH Protection

Install and configure fail2ban on Ubuntu 24.04 for SSH brute-force protection with systemd journal monitoring, safe ban testing, tuning, and rollback.

beginner

How to Install Portainer on Ubuntu 24.04 with Docker

Install Portainer CE on Ubuntu 24.04 with Docker, Nginx, trusted HTTPS, private admin access, backups, secure updates, and verification steps.

beginner

How to Deploy Gitea with Docker Compose on Ubuntu 24.04

Deploy Gitea on Ubuntu 24.04 with Docker Compose, PostgreSQL, Nginx, HTTPS, SSH clone access, backups, upgrades, and verification steps.

intermediate

Generate SSH Keys on Ubuntu 24.04: Ed25519 Setup Guide

Generate an SSH key on Ubuntu 24.04 with Ed25519, ssh-keygen, ssh-copy-id, ssh-agent, safe password disabling, troubleshooting, and key rotation.

beginner

How to Install Certbot for Nginx on Ubuntu 24.04 with Let's Encrypt

Install Certbot for Nginx on Ubuntu 24.04, issue a Let's Encrypt SSL certificate, redirect HTTP to HTTPS, test renewal, and troubleshoot common errors.

intermediate

How to Build a Remote Development VM with code-server and Tailscale

Build a private remote development VM on Ubuntu 24.04 with code-server and Tailscale Serve, HTTPS, localhost binding, backups, and safe updates.

intermediate

How to Harden an Ubuntu 24.04 Server

Harden Ubuntu 24.04 with SSH keys, safe OpenSSH drop-ins, UFW, automatic security updates, AppArmor, access auditing, logging, and recovery checks.

intermediate

How to Set Up a LEMP Stack on Ubuntu 24.04

Set up a LEMP stack on Ubuntu 24.04 with Nginx, PHP 8.3, MariaDB, secure database access, HTTPS, verification, and rollback steps.

beginner

How to Install Open WebUI with Ollama on Ubuntu 24.04

Install Open WebUI with Ollama on Ubuntu 24.04 using private Docker Compose networking, Caddy HTTPS, pinned versions, backups, and safe updates.

intermediate

How to Set Up UFW Firewall on Ubuntu 24.04

Set up UFW on Ubuntu 24.04 without losing SSH access. Configure IPv4/IPv6 rules, ports, source restrictions, logging, rule order, and Docker caveats.

beginner

How to Install OpenClaw on Ubuntu 24.04 with Telegram

Install OpenClaw on Ubuntu 24.04 with Telegram pairing, a loopback-only Gateway, secure credentials, SSH-tunneled Control UI, backups, and safe updates.

intermediate

How to Install WordPress on Ubuntu 24.04 with Nginx

Install WordPress on Ubuntu 24.04 with Nginx, PHP 8.3, MariaDB, secure permissions, and Let's Encrypt HTTPS on a Raff Linux VM step by step.

beginner

How to Deploy Uptime Kuma with Docker on Ubuntu 24.04

Deploy Uptime Kuma 2 with Docker Compose on Ubuntu 24.04 using localhost-only port 3001, Caddy HTTPS, monitors, status pages, backups, and safe updates.

beginner

How to Install Nginx on Ubuntu 24.04

Install Nginx on Ubuntu 24.04, verify the current Ubuntu package, configure UFW safely, create a server block, test HTTP, and inspect logs.

beginner

How to Install Docker on Ubuntu 24.04

Install Docker on Ubuntu 24.04 from Docker’s official APT repository. Add Docker Engine, Compose and Buildx, verify hello-world, and avoid common UFW exposure mistakes.

beginner

Guides(79)

MongoDB Production Architecture: Replica Sets, Scaling & High Availability

Plan production MongoDB replica sets, failover, write concern, private networking, backups, and scaling before sharding.

Git-Based Deployment Workflows for Small Teams

Git deployment guide for small teams covering native push-to-deploy, CI/CD boundaries, build reproducibility, previews, health checks, revisions, and rollback.

SLOs for Small Cloud Applications: A Practical Reliability Framework

Practical SLO guide for small teams: choose SLIs, set reliability targets, calculate error budgets, use burn rate, and connect reliability to release decisions.

Background Workers and Task Queues for SaaS Apps

Learn when SaaS apps need background workers and task queues, including retries, idempotency, dead-letter jobs, worker sizing, scaling, and monitoring.

Operating Serverless Functions in Production: Security, Observability & Recovery

Production serverless operations guide covering triggers, scoped bindings, retries, observability, spend controls, revisions, rollback, and incident recovery.

Migrate an AWS Lambda HTTP Handler to Raff Functions

Migrate an AWS Lambda HTTP handler to Raff Functions by removing event/context coupling, mapping request/response behavior, replacing AWS-specific dependencies, and staging a safe cutover.

Reverse Proxy Guide for Cloud VMs: Nginx, Caddy, TLS & Routing

Reverse proxy guide for cloud VMs covering Nginx, Caddy, TLS, proxy headers, routing, timeouts, logs, and when to add a load balancer.

TLS & Application Edge Security for Cloud Workloads

Plan TLS and application-edge security for cloud workloads: certificates, HSTS, TLS termination, firewalls, WAF, rate limiting, mTLS, headers, and encryption boundaries.

Business Continuity Plan for Small Businesses: Systems, Recovery & Ownership

Build a small-business continuity plan covering critical functions, owners, dependencies, recovery targets, workarounds, communications, and testing.

Production Deployment Strategies for SaaS Apps

Compare production deployment strategies for SaaS apps: in-place, rolling, blue-green, canary, health gates, rollback, capacity, and database compatibility.

CI/CD for VM Deployments: Pipelines, Secrets, Rollbacks & Releases

CI/CD guide for VM deployments covering artifacts, GitHub Actions, deploy credentials, approvals, health checks, migrations, and rollback.

Application Deployment on a Linux VM: From Source Code to Production

Linux VM deployment guide covering artifacts, secrets, process managers, reverse proxies, TLS, health checks, persistence, and rollback.

App Platform Migration Checklist: Builds, Variables, Domains & Data

Migrate between App Platforms with a checklist for builds, variables, secrets, services, data, domains, scheduled jobs, rollback, and decommissioning.

App Platform Scaling and Release Management

Plan vertical and horizontal scaling, scale-to-zero, immutable revisions, health-gated releases, rollback, capacity headroom, and production release safety on App Platforms.

Multi-Service Applications on an App Platform

Design multi-service applications on an App Platform with public/private services, workers, scheduled jobs, databases, persistent state, domains, and independent scaling.

Environment Variables and Secrets on App Platforms

Manage environment variables and secrets on app platforms with service-level scope, preview isolation, platform bindings, rotation, logging safety, and deployment controls.

Buildpacks vs Dockerfiles for App Deployment

Compare buildpacks and Dockerfiles for app deployment: control, portability, system packages, build reproducibility, health checks, secrets, and persistent state.

Startup Cloud Infrastructure Guide: From MVP to Production

Plan startup cloud infrastructure from MVP to production: compute, data, cost, reliability, launch readiness, diligence, and Kubernetes decisions.

VPS for Application Hosting: When It Fits Small Teams

Evaluate VPS application hosting by workload, resources, state, background jobs, recovery, scaling, and when one VM or another platform fits.

VM Sizing Guide: How to Choose CPU, RAM, Storage & VM Size

Use this VM sizing guide to choose CPU, RAM, storage, and network capacity for apps, databases, containers, and production workloads without overbuying.

How Much RAM Do I Need for a VPS? 1GB–16GB Guide

How much RAM does a VPS need? Compare 1 GB, 2 GB, 4 GB, 8 GB and 16 GB for websites, Docker, databases, APIs and Windows workloads.

2 vCPU vs 4 vCPU: Meaning, Performance & When to Upgrade

2 vCPU vs 4 vCPU explained: learn what each means, when extra vCPU improves performance, and when RAM, storage, or another bottleneck matters more.

Shared vs Dedicated vCPU: How to Choose the Right VM Class

Compare shared CPU vs dedicated CPU (shared vCPU vs dedicated vCPU), CPU predictability, production workload fit, and when each VM class makes sense.

VPS vs Dedicated Server: Cost, Performance, and When to Upgrade

Compare VPS vs dedicated server by cost, CPU consistency, isolation, storage, scaling, recovery, and the workload signals that justify physical hardware.

VPS vs Cloud VM vs Cloud Server: What’s the Difference?

VPS vs cloud VM vs cloud server: learn what each term means, where they overlap, what the labels do not guarantee, and which infrastructure details to verify.

Redis vs Valkey: Compatibility, Operations, and Migration

Compare Redis vs Valkey across protocol compatibility, clients, persistence, modules, operations, and safe migration for cache, sessions, and queues.

MySQL Performance Bottlenecks: Queries, Indexes, and Connections

Diagnose MySQL performance bottlenecks across slow queries, indexes, connections, locks, memory, and storage before scaling production database capacity.

MySQL Binary Logs, Backups, and Point-in-Time Recovery

Design MySQL backups and point-in-time recovery with full backups, binary logs, retention, restore testing, and safe replay after accidental changes.

ClickHouse Monitoring: Queries, Merges, Replication & Alerts

Monitor ClickHouse query latency, rows read, memory, parts, merges, mutations, replication, Keeper, disk growth, and ingestion freshness with actionable alerts.

ClickHouse Backup & Replication: Availability, Recovery & Restore

Plan ClickHouse backups and replication: distinguish replicas from backups, define RPO/RTO, monitor Keeper, and test restores.

Kafka Retention: Durability, Replication & Data-Loss Trade-Offs

Design Kafka retention across time and size limits, delete vs compact cleanup, replication, ISR durability, consumer replay windows, and storage capacity.

ClickHouse Partitioning & TTL: MergeTree & Retention Trade-Offs

Design ClickHouse partitioning and TTL for MergeTree: choose coarse partitions, use ORDER BY for queries, and manage retention without excess parts.

ClickHouse Materialized Views: Pre-Aggregation & Query Trade-Offs

Compare ClickHouse materialized views for pre-aggregation: incremental vs refreshable designs, backfills, write costs, and correctness trade-offs.

Redis Cache Strategy for SaaS Apps: Queues, Valkey & Sessions

Plan Redis and Valkey for SaaS caching, queues, sessions, rate limiting, persistence, and recovery, then choose managed Valkey or self-hosting.

Database Storage on Block Volumes: Layout, Monitoring, and Recovery

Plan database storage on block volumes for PostgreSQL and MySQL, including layout, capacity headroom, I/O monitoring, backups, and recovery.

Database Backup Strategy for SaaS Apps: Recovery Framework

Build a database backup strategy for SaaS apps using RPO, RTO, point-in-time recovery, retention, isolation, disaster recovery, and tested restores.

Managed Database vs Self-Hosted: What Small Teams Should Choose

Compare managed database vs self-hosted across total cost, control, backups, HA, recovery, security, scaling, and operational ownership for production workloads.

PostgreSQL Replication vs Backups vs Snapshots: What Each Protects

Compare PostgreSQL replication, backups, point-in-time recovery, and snapshots by the failure modes each protects and the recovery gaps each leaves.

Database Migration Services: Costs, Process & Provider Checklist

Compare database migration services by scope, cost, downtime, provider responsibilities, validation, and rollback before choosing a migration provider or consultant.

Database Migration Checklist for Managed Databases

Use this database migration checklist to assess compatibility, prepare the target, prove recovery, synchronize data, control cutover, validate production, and plan rollback.

Redis Eviction Policies: Choosing the Right Memory Strategy

Choose a Redis eviction policy across LRU, LFU, LRM, noeviction, volatile policies, maxmemory, TTLs, monitoring, and Valkey compatibility.

Redis RDB vs AOF: Persistence & Data Loss Trade-Offs

Compare Redis RDB vs AOF across durability, fsync behavior, restart speed, write overhead, backup use, data-loss windows, and when to use both.

ClickHouse Performance Tuning: ORDER BY, Keys & Query Optimization

Improve ClickHouse query performance with better ORDER BY and sorting keys, lower scan volume, and controlled memory, joins, and concurrency.

Managed ClickHouse vs Self-Hosted ClickHouse: Cost, Scaling & Ownership

Compare managed and self-hosted ClickHouse across pricing models, scaling, backups, HA, operational ownership, and total cost for production analytics.

K3s Upgrade and Rollback Strategy

Plan K3s upgrades with release channels, server-first sequencing, System Upgrade Controller, datastore snapshots, v1.37 checks, and rollback.

K3s Networking, Ingress, and Load Balancing

Design K3s networking with Flannel, Traefik, ServiceLB, Gateway API, private node traffic, and a separate HA control-plane registration endpoint.

K3s Persistent Storage and Backup Strategy

Choose K3s storage for production across local-path, Longhorn, node failure, PVC recovery, and backups without confusing persistence, HA, and DR.

Serverless API Security: Authentication, CORS & Rate Limiting

Learn how to secure serverless APIs with authentication, authorization, CORS, rate limiting, validation, scoped secrets, and safe HTTP Function boundaries.

Serverless APIs and Webhooks: HTTP Functions for Small Teams

Learn when serverless APIs and HTTP Functions fit webhooks, callbacks, small APIs, and event-driven endpoints, and when a persistent app runtime fits better.

Docker on a Cloud VM: Architecture, Security, and Operations

Run Docker on a cloud VM with a clear production model for security, networking, storage, monitoring, and recovery.

K3s High Availability: Embedded etcd vs External Database

Learn K3s default datastore behavior and compare SQLite, embedded etcd, and external PostgreSQL/MySQL/etcd for HA, quorum, backups, and recovery.

K3s on Cloud VMs: Architecture, HA, Storage, and Operations

Design K3s on cloud VMs across single-server, agent, and HA topologies, including datastore, networking, storage, backups, upgrades, and production operations.

Scaling Beyond One Docker Compose Host

Learn how to scale beyond one Docker Compose host with role separation, multiple app VMs, load balancing, shared state, Swarm, and a clean path to orchestration.

Docker Compose Backup and Restore Strategy

Back up and restore a Docker Compose stack by protecting configuration, secrets, persistent data, databases, images, and a tested clean-host recovery path.

Docker Compose Networking: Public Ports, Private Services, and DNS

Design Docker Compose networking for production with deliberate port publishing, private services, service-name DNS, network segmentation, and safer host exposure.

Docker Host Security Checklist for Production VMs

Use this Docker host security checklist to harden production VMs across daemon access, privileges, networking, images, secrets, updates, and recovery.

Docker Resource Limits, Logging, and Disk Management

Control Docker CPU, memory, logs, and disk growth on production VMs with clear limits, rotation, monitoring, and safe cleanup policies.

Serverless Function Timeout, Memory & Concurrency Limits

Learn how serverless function timeout, memory, temporary storage, and concurrency limits affect workload design and when to choose another compute model.

Serverless Cold Starts, Concurrency, and Scale-to-Zero

Learn how serverless cold starts, concurrency, scale-to-zero, warm capacity, and traffic bursts affect latency, autoscaling, and production function design.

Kubernetes Security Best Practices: RBAC, Secrets & Pod Security

A practical Kubernetes security baseline for RBAC, ServiceAccounts, Secrets, Pod Security Standards, securityContext, and recurring access reviews.

Kubernetes Monitoring: Metrics, Logs, Events, and Traces

Learn Kubernetes monitoring across metrics, logs, Events, and traces, with a practical small-team observability and alerting framework.

Kubernetes Autoscaling: HPA, Node Scaling, and Cost

Understand Kubernetes autoscaling with HPA, node scaling, resource requests, scale-to-zero, stabilization, scheduling, and worker cost boundaries.

Kubernetes Backup and Disaster Recovery Strategy

Plan Kubernetes backup and disaster recovery with RPO/RTO, etcd, persistent data, VolumeSnapshots, restore testing, and failure-specific recovery runbooks.

Kubernetes Upgrade Strategy: Maintenance, Risk, and Rollback

Plan Kubernetes upgrades with supported-version checks, API compatibility, worker drains, PDBs, recovery state, stop criteria, and post-upgrade validation.

Kubernetes Cluster Management for Small Teams: Operations Guide

Kubernetes cluster management for small teams: capacity, upgrades, recovery, autoscaling, monitoring, security, and cost.

Kubernetes Requests vs Limits: CPU, Memory, and Scheduling

Understand Kubernetes requests vs limits for CPU and memory, including scheduling, throttling, OOM behavior, HPA, QoS, LimitRange, best practices, and worker capacity.

Kubernetes Load Balancer vs Ingress Controller: Differences & When to Use Each

Compare Kubernetes LoadBalancer Services vs Ingress controllers, including routing, TLS, TCP/UDP, public endpoints, Gateway API, and when to use each.

Kubernetes DNS and Service Discovery Troubleshooting

Troubleshoot Kubernetes DNS and service discovery across CoreDNS, namespaces, Pod resolver settings, Services, EndpointSlices, NetworkPolicy, and upstream DNS.

Container Infrastructure for Small Teams: Docker, K3s, and Kubernetes

Choose Docker, Compose, K3s, or managed Kubernetes based on ownership, multi-host needs, scaling, and recovery.

Kubernetes Services Explained: Ingress and Load Balancers

Understand Kubernetes Services, ClusterIP, NodePort, LoadBalancer, Gateway API, and Ingress for production traffic exposure.

Kubernetes Networking and Storage Architecture

Design Kubernetes networking and storage across Services, Gateway API, NetworkPolicy, PVCs, StorageClasses, private networking, and recovery.

Docker Compose to Managed Kubernetes Migration Checklist

Plan a Docker Compose to Kubernetes migration across state, probes, networking, secrets, storage, worker sizing, cutover, and rollback.

Kubernetes Node Pools: Workload Separation and Scaling

Learn when Kubernetes node pools make sense, how labels, affinity, taints, autoscaling, failure capacity, and worker shapes affect workload placement.

Kubernetes Cluster Sizing: Nodes, Capacity & Headroom

Size Kubernetes clusters using Node Allocatable, workload requests, worker shape, rollout overlap, N+1 failure headroom, and autoscaling boundaries.

Kubernetes Persistent Storage: PVs, PVCs & StorageClasses

Understand Kubernetes persistent storage, PVs, PVCs, StorageClasses, access modes, reclaim policies, StatefulSets, snapshots, and backup boundaries.

Kubernetes Network Policy: Default Deny, Ingress & Egress

Learn Kubernetes NetworkPolicy with default-deny, ingress, egress, selectors, DNS rules, examples, rollout checks, and production verification.

Managed vs Self-Managed Kubernetes: What Every Team Needs to Know

Compare managed vs self-managed Kubernetes across control-plane ownership, upgrades, HA, recovery, cost, and team fit—and see when a managed Kubernetes service makes sense.

Docker Compose in Production: Best Practices, Deployment & Limits

Use Docker Compose in production with practical best practices for configuration, security, health checks, releases, storage, backups, monitoring, recovery, and single-host limits.

User Access Review for Cloud Servers: SSH Keys, Admins, and Permissions

Run an access review for cloud servers covering users, SSH keys, RDP, API keys, privileged access, offboarding, private-network reachability, and recovery permissions.

Comparisons(7)