Skip to content

DistantMyth/Image-Mania

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🐳 Image Mania

Welcome to Image Mania, the ultimate FOSS self-hosting speedrun.

Forget the GUI. This challenge drops you into a pure, headless Ubuntu terminal (or your favorite code editor). Your mission? Transform a blank server into a fully interconnected, automated homelab architecture using Docker, open-source services, and pure command-line grit.


🚀 Pre-Flight Setup

Before the timer starts, you need to configure your local environment to access the cloud server.

1. Install the GitHub CLI

  • Windows (PowerShell): winget install --id GitHub.cli
  • macOS (Homebrew): brew install gh
  • Linux: Follow the official guide for your distro.

2. Authenticate & Prepare

Run these commands in your terminal:

# Login to GitHub
gh auth login

# Grant Codespace permissions
gh auth refresh -h github.com -s codespace

# Create your Codespace (Make sure you have forked this repo first!)
gh codespace create -R <your-github-username>/Image-Mania

# SSH into the server
gh codespace ssh

3. IMPORTANT: Port Visibility 🔓

Your Codespace is configured to automatically make your ports public when you start them.

🔎 Verification

To check if your ports are open, run this command directly in your server terminal:

gh codespace ports

Look at the VISIBILITY column. If it says public, you are all set!

🛠️ Manual Fallback

If for some reason a port is listed as private, you can manually make it public with this command (can be run in the same terminal):

gh codespace ports visibility 3000:public 3001:public 3002:public 8080:public 8081:public 8082:public 8083:public 8084:public 8085:public 8096:public

📚 New to Docker? Read This First!

If you've never used Docker before, it might seem scary. Think of it as Lego for software.

What are Ports?

Ports are like arrival gates at an airport. A service runs on a specific "gate" so you can find it.

  • How to change them? In a docker-compose.yml, the ports section looks like this: - 8080:80.
  • The first number is the port on your server. The second number is the port inside the container. Change the first one if you have a conflict!

What are Volumes?

Volumes are like external hard drives. They keep your data safe even if the container is destroyed or updated.

Google is your Best Friend 🔍

Stopped by an error? Don't know a specific configuration? Google the documentation! Most services have excellent "Docker Hub" or "Official Documentation" pages. Searching for "how to change [service] port docker" will solve 90% of your problems.


🏆 The Challenge Phases

You will build your stack progressively across 9 phases. Click each phase to see the specific guidelines and objectives.


📜 Rules of Engagement

  1. Use Compose: Do not use massive docker run commands. Write clean, maintainable docker-compose.yml files.
  2. Terminal Lovers: If you want to do everything in the CLI (Neovim, Vim, Nano), check out the Terminal Guide.
  3. Active URLs: To find your links, open a second terminal tab and run gh codespace ports.

vim, nano, and essential tools are pre-installed. Good luck, Architect.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors