diff --git a/PORTAINER_DEPLOY.md b/PORTAINER_DEPLOY.md new file mode 100644 index 0000000..26cc2a8 --- /dev/null +++ b/PORTAINER_DEPLOY.md @@ -0,0 +1,260 @@ +# 🐳 Portainer Deployment Guide + +Deploy LemonLink to your Portainer Docker VM in minutes! + +--- + +## 📋 Prerequisites + +- Portainer accessible at `http://your-vm-ip:9000` +- SSH access to your Docker VM +- Files uploaded to Gitea (✓ Done!) + +--- + +## 🎯 Method 1: Git Clone in VM (Recommended) + +### Step 1: SSH into Your Docker VM + +```bash +ssh root@your-docker-vm-ip +``` + +### Step 2: Clone from Gitea + +```bash +# Create directory +mkdir -p /opt + +# Clone your repository +cd /opt +git clone https://git.lemonlink.eu/impulsivefps/lemonlink.git + +# Enter directory +cd lemonlink +``` + +**If Gitea requires authentication:** +```bash +# Use token in URL (replace YOUR_TOKEN) +git clone https://impulsivefps:YOUR_TOKEN@git.lemonlink.eu/impulsivefps/lemonlink.git +``` + +### Step 3: Verify Files + +```bash +ls -la +# Should show: index.html, styles.css, script.js, docker-compose.yml, etc. +``` + +--- + +## 🎯 Method 2: Direct File Upload (No Git) + +If you prefer not to use Git on the VM: + +### From Your Windows Machine: + +```powershell +# Using SCP (from PowerShell) +scp index.html styles.css script.js nginx.conf docker-compose.yml root@your-docker-vm-ip:/opt/lemonlink/ + +# Create directory first if needed: +ssh root@your-docker-vm-ip "mkdir -p /opt/lemonlink" +``` + +Or use **WinSCP** GUI to drag and drop files to `/opt/lemonlink/`. + +--- + +## 🚀 Deploy in Portainer + +### Step 1: Open Portainer + +1. Go to: `http://your-docker-vm-ip:9000` +2. Log in to Portainer + +### Step 2: Create the Stack + +1. Click **Stacks** in the left sidebar +2. Click **+ Add Stack** (or "Add stack" button) +3. Configure: + - **Name**: `lemonlink` + - **Build method**: Select **Web editor** + +4. Paste this into the editor: + +```yaml +version: '3.8' + +services: + lemonlink: + image: nginx:alpine + container_name: lemonlink-landing + restart: unless-stopped + volumes: + - /opt/lemonlink/index.html:/usr/share/nginx/html/index.html:ro + - /opt/lemonlink/styles.css:/usr/share/nginx/html/styles.css:ro + - /opt/lemonlink/script.js:/usr/share/nginx/html/script.js:ro + - /opt/lemonlink/nginx.conf:/etc/nginx/conf.d/default.conf:ro + networks: + - lemonlink-network + ports: + - "8080:80" + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + labels: + - "com.lemonlink.description=LemonLink Landing Page" + +networks: + lemonlink-network: + driver: bridge + name: lemonlink-network +``` + +5. Click **Deploy the stack** + +6. Wait for green "up" indicator (takes ~10-20 seconds) + +--- + +## ✅ Verify Deployment + +### Check in Portainer: + +1. Go to **Containers** +2. Look for `lemonlink-landing` +3. Status should show **running** (green) + +### Test the Website: + +```bash +# From your local machine +curl http://your-docker-vm-ip:8080 +``` + +Or open browser: `http://your-docker-vm-ip:8080` + +You should see your stunning LemonLink page! 🍋 + +--- + +## 🔄 Updating After Changes + +When you make changes and push to Gitea: + +### Option 1: Pull in VM (Recommended) + +```bash +ssh root@your-docker-vm-ip +cd /opt/lemonlink +git pull origin master +# Changes reflect instantly - no restart needed! +``` + +### Option 2: Webhook Auto-Deploy (Advanced) + +Set up a webhook in Gitea to auto-deploy on push. + +--- + +## 🔒 Adding HTTPS (Optional) + +If you have Traefik or Nginx Proxy Manager: + +### With Traefik: + +Replace the stack with: + +```yaml +version: '3.8' + +services: + lemonlink: + image: nginx:alpine + container_name: lemonlink-landing + restart: unless-stopped + volumes: + - /opt/lemonlink/index.html:/usr/share/nginx/html/index.html:ro + - /opt/lemonlink/styles.css:/usr/share/nginx/html/styles.css:ro + - /opt/lemonlink/script.js:/usr/share/nginx/html/script.js:ro + - /opt/lemonlink/nginx.conf:/etc/nginx/conf.d/default.conf:ro + networks: + - traefik-public # Your Traefik network name + # NO PORTS - Traefik handles this + labels: + - "traefik.enable=true" + - "traefik.http.routers.lemonlink.rule=Host(`lemonlink.eu`)" + - "traefik.http.routers.lemonlink.entrypoints=websecure" + - "traefik.http.routers.lemonlink.tls.certresolver=letsencrypt" + - "traefik.http.services.lemonlink.loadbalancer.server.port=80" + +networks: + traefik-public: + external: true +``` + +Then point DNS `lemonlink.eu` → your VM's public IP. + +--- + +## 🛠️ Troubleshooting + +### Container won't start + +```bash +# Check logs in Portainer: +# Containers → lemonlink-landing → Logs + +# Or via SSH: +docker logs lemonlink-landing +``` + +### "404 Not Found" + +Check files exist: +```bash +ls -la /opt/lemonlink/ +# Should show index.html, styles.css, script.js +``` + +### Port already in use + +Change port in the stack: +```yaml +ports: + - "8081:80" # Use 8081 instead of 8080 +``` + +### Permission denied + +```bash +# Fix permissions +chmod -R 755 /opt/lemonlink/ +``` + +--- + +## 📊 Useful Portainer Commands + +| Action | Location | +|--------|----------| +| View logs | Containers → lemonlink-landing → Logs | +| Restart | Containers → lemonlink-landing → Restart | +| Edit stack | Stacks → lemonlink → Editor | +| Delete | Stacks → lemonlink → Delete | + +--- + +## 🎉 Success! + +Your stunning LemonLink landing page is now live at: +**http://your-docker-vm-ip:8080** + +--- + +**Questions?** Check the container logs in Portainer! 🚀 diff --git a/index.html b/index.html index 6153774..1f9eb19 100644 --- a/index.html +++ b/index.html @@ -53,9 +53,9 @@ LemonLink

- A cutting-edge homelab ecosystem hosting innovative services, - powerful applications, and experimental projects. - Built with passion, powered by curiosity. + A powerful homelab ecosystem running on enterprise-grade hardware. + Hosting 50+ services across dual Xeon servers and Raspberry Pi 5. + Built by ImpulsiveFPS with passion for self-hosting.

@@ -71,7 +71,7 @@
0 + - Services + Containers
@@ -169,12 +169,12 @@
-

Proxmox Cluster

-

3-node high-availability virtualization cluster with Ceph storage

+

Proxmox Server

+

Dell PowerEdge with dual Xeon processors running Proxmox VE with 50+ containers and VMs

- 96 Cores - 384 GB RAM - 20 TB SSD + 24 Cores + 96 GB RAM + 2x Xeon E5645
@@ -183,11 +183,11 @@
🖧

Network Stack

-

UniFi ecosystem with 10G backbone and advanced VLAN segmentation

+

1 Gbps fiber internet with managed switching and Tailscale mesh VPN

- 10 Gbps - UniFi - VLAN + 1 Gbps + Tailscale + NPM
@@ -196,24 +196,24 @@
💾

Storage Array

-

TrueNAS SCALE with ZFS pools for reliable data storage

+

TrueNAS SCALE with 12TB raw storage for media, backups, and datasets

- 48 TB - ZFS - RAID-Z2 + 12 TB Raw + 9 TB Usable + SCALE
-
🤖
+
🍓
-

Automation

-

Terraform, Ansible & GitOps for infrastructure as code

+

RPi 5 Node

+

Raspberry Pi 5 running Docker containers and Portainer for edge workloads

- IaC - GitOps - CI/CD + ARM64 + Docker + Portainer
@@ -265,43 +265,7 @@

Nextcloud

-

Private cloud storage and collaboration platform

-
- - Online -
-
- - - -
- - - -
-
- -
-

Jellyfin

-

Open source media server for movies and TV shows

-
- - Online -
-
- - - -
-
- - -
-
- -
-

Wiki

-

Documentation and knowledge base

+

Private cloud storage, files, and collaboration

Online @@ -315,11 +279,11 @@
-
- +
+
-

GitLab

-

Self-hosted Git repository and CI/CD platform

+

Gitea

+

Self-hosted Git service for code repositories

Online @@ -331,13 +295,49 @@
- +
-
- +
+
-

Monitoring

-

Grafana dashboards and Prometheus metrics

+

Netdata

+

Real-time system monitoring and metrics

+
+ + Online +
+
+ + + +
+
+ + +
+
+ +
+

Immich

+

Self-hosted photo and video backup solution

+
+ + Online +
+
+ + + +
+
+ + +
+
+ +
+

Homarr

+

Customizable dashboard for all your services

@@ -425,36 +425,36 @@
@@ -543,30 +543,19 @@
👋 Let's Connect -

Have a project in mind?

-

Whether you want to collaborate, need infrastructure advice, or just want to chat about homelabs — I'm always open to interesting conversations.

+

ImpulsiveFPS

+

Homelab enthusiast running 50+ services on dual Xeon hardware. Passionate about self-hosting, networking, and building reliable infrastructure. This site showcases my journey into the world of self-hosted solutions.

-
@@ -609,7 +598,7 @@ 🍋 LemonLink - +