Project 404

🌳 Git Repository Server

Collaborative version control • Terminal-friendly • Anonymous hosting

📡 Access Points

SSH (Git):git@git.4-0-4.io
SSH (Shell):ssh://git.4-0-4.io
HTTPS:https://gitx.4-0-4.io
Port:22 (SSH) / 443 (HTTPS)

🚀 Getting Started

Our git server provides an interactive Terminal User Interface (TUI) and a CLI that makes browsing and managing repositories intuitive and efficient. Connect via SSH to explore available repositories, view code, and interact with your projects - all from your terminal.

💻 Quick Start Guide

🔍 Browse the TUI

Launch the interactive interface to explore repositories:

ssh git.4-0-4.io
💡 Tip: No authentication needed to browse public repositories!

📥 Clone a Repository

Standard git clone operation via SSH:

git clone git@git.4-0-4.io:repository-name.git

Or via HTTPS:

git clone https://gitx.4-0-4.io/repository-name.git

📤 Push to Server

💡 Tip: You need an account to push to server. Ask Dasho on chat or elsewhere.

After cloning or setting up a new repository:

git remote add origin git@git.4-0-4.io:your-repo.git
git push -u origin main
Setting up SSH authentication

Generate SSH key (if you don't have one):

ssh-keygen -t ed25519 -C "your_email@example.com"

Copy your public key:

cat ~/.ssh/id_ed25519.pub

Send it to Dasho for account setup.

Once you have an account, you can add extra keys as needed:

Add to server via CLI:

Run: ssh -i ~/.ssh/id_ed25519 git.4-0-4.io pubkey add <AUTHORIZED_KEY>

🆕 Create a New Repository

Initialize a new repository on the server:

Via Push Upstream (recommended):

git push -u git.4-0-4.io main

Automatically creates the repository if it doesn't exist.

Via command line:

ssh git@git.4-0-4.io repo create my-new-project

📋 List All Repositories

View available repositories from the command line:

ssh git@git.4-0-4.io repos list

ℹ️ Repository Information

Get details about a specific repository:

ssh git@git.4-0-4.io repo info repository-name

✨ Server Features

🎨 Beautiful TUI

Navigate repositories with an elegant, keyboard-driven interface

🔐 SSH Authentication

Secure key-based authentication for push/pull operations

🌐 Multiple Protocols

Access via SSH, HTTPS, or native Git protocol

👥 Collaborative

Manage permissions, collaborators, and access control

📊 Repository Insights

View commit history, contributors, and tags

🎯 Lightweight

Fast, efficient, and runs smoothly in any terminal

🔄 Common Workflows

Starting a New Project

# 1. Create repository on server (via TUI or command)
ssh git.4-0-4.io repo create my-project

# 2. Initialize local repository
mkdir my-project && cd my-project
git init

# 3. Add remote and push
git remote add origin git@git.4-0-4.io:my-project.git
git add .
git commit -m "Initial commit"
git push -u origin main

Contributing to Existing Repository

# 1. Clone the repository
git clone git@git.4-0-4.io:project-name.git
cd project-name

# 2. Create a feature branch
git checkout -b feature/my-feature

# 3. Make changes, commit, and push
git add .
git commit -m "Add new feature"
git push origin feature/my-feature

Migrating from GitHub/GitLab

# 1. Clone your existing repository directly to the server
ssh -i ~/.ssh/id_ed25519 git.4-0-4.io repo import <repo_name> https://github.com/<user>/<repo>.git

# 2. Then clone and use as usual:
git clone git@git.4-0-4.io:repo.git // OR
git clone https://gitx.4-0-4.io/repo.git

# 3. Push use as normal mirror to our server
...edit....
...stage...
git push git@git.4-0-4.io:repo.git

💡 Pro Tips

🎯 Quick Commands

Use command-line tools for rapid operations:

  • ssh git@git.4-0-4.io help - Show all commands
  • ssh git@git.4-0-4.io repo list - List repos
  • ssh git@git.4-0-4.io repo create <name> - Create repo
  • ssh git@git.4-0-4.io repo delete <name> - Delete repo

⚡ SSH Config

Add to ~/.ssh/config for convenience:

Host 404
    HostName git.4-0-4.io
    User git
    IdentityFile ~/.ssh/id_ed25519

Then simply: git clone 404:repo.git

🔍 Browse via TUI

Access the TUI interface at git.4-0-4.io to:

  • View repository contents
  • Read README files
  • Explore commit history
  • Copy clone commands with ease

🛡️ Private Repositories

Control repository visibility:

  • Public repos are readable by anyone
  • Private repos require authentication
  • Manage access via the CLI settings
  • Add collaborators by their SSH pubkeys

🔧 Advanced Usage

Repository Descriptions & READMEs

Set repository description via TUI or command:

ssh git@git.4-0-4.io repo description repo-name "Your description here"

The server automatically renders README.md files in the tui interface.

Webhooks & Automation

Configure post-receive hooks for CI/CD integration:

# Access the repository hooks directory
ssh git@git.4-0-4.io repo webhook create <repo-name> <webhook-URL>

Git LFS Support

Large File Storage (LFS) is supported for binary files:

git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Track PSD files with LFS"
git push

Repository Mirroring

Set up automatic mirroring from external sources:

# Create a mirror repository
ssh git@git.4-0-4.io repo create --mirror external-project

# Set up pull mirror (updates automatically)
ssh git@git.4-0-4.io repo mirror set external-project https://github.com/user/repo.git

❓ Frequently Asked Questions

How do I reset my SSH key?

Use the CLI (ssh git.4-0-4.io pubkeys) and manage your keys from there. You can add, list, or remove keys at any time.

Can I use this with existing git workflows?

Absolutely! Our server is fully compatible with standard Git. All your favorite tools (git-flow, GitHub Desktop, GitKraken, etc.) work seamlessly.

What's the repository size limit?

There's no hard limit, but we recommend keeping individual repositories under 5GB for optimal performance. Use Git LFS for large binary files.

Since I'm a hobbyist and not a big company, please be considerate of storage and bandwidth. Git directories that are excessively large may be removed after notice.

How do I delete a repository?

Via command: ssh git@git.4-0-4.io repo delete repo-name

Is there API access?

Yes! Use the command-line interface for programmatic access. All commands can be scripted and automated (but this will be on you to figure out). For example: ssh git@git.4-0-4.io repo list

Can I import from other platforms?

Yes! Use git clone --mirror from the source, then git push --mirror to our server. The CLI also has an import wizard for popular platforms.

🆘 Need Help?

Join the chat for support and discussions:

Quick help command:

ssh git@git.4-0-4.io help
ssh git@git.4-0-4.io <command> --help