Skip to content

ucanet/ucanet-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ucanet logo

ucanet-server

An alt-root DNS and HTTP server for the ucanet network — a web infrastructure designed from scratch for retro computers, disconnected networks, and a clean break from the modern internet.


Table of Contents


Overview

ucanet-server is a fully local server that handles:

  • DNS resolution (UDP/TCP)
  • Web proxying (HTTP only)
  • Neocities and Protoweb integration
  • An alternative to the modern internet

It serves only domains found in the ucanet-registry and does not access or resolve the real web.

This is the backbone of the ucanet network.


How It Works

  1. DNS queries (e.g. example.com) are handled by this server.
  2. The domain registry syncs from the GitHub repository.
  3. If found:
    • It returns the matching IP address.
    • If the entry is protoweb, it proxies the request via the Protoweb Wayback proxy.
  4. If not found:
    • It defaults to ucanet.net or returns 0.0.0.0.

Domains can point to:

  • an IP address
  • a Neocities website
  • the keyword protoweb (for archived pages)

Features

  • Alternative DNS server (UDP + TCP)
  • HTTP proxy
  • Neocities support (username.neocities.org)
  • Protoweb integration via wayback.protoweb.org
  • Domain registry that syncs with GitHub repository
  • Can run offline

Requirements

  • Python 3.8 or newer

Python libraries:

pip install dnslib tldextract cachetools apscheduler gitpython requests

Setup

  1. Clone the repo
git clone https://github.com/ucanet/ucanet-server.git
cd ucanet-server
  1. Edit the config
SERVER_IP = '127.0.0.1'       # Your machine’s IP
SERVER_PORT = 53              # Main DNS port
ALTERNATE_PORT = 5453         # Optional second DNS port
WEBSERVER_IP = '127.0.0.1'    # Used for HTTP requests
WEBSERVER_PORT = 80           # HTTP port
  1. In ucanetlib.py, set your Git credentials (optional for bots):
GIT_USERNAME = "your_username"
GIT_PASSWORD = "your_token"
  1. Run the server
python ucanet-server.py

Domain Registry

The domain registry is stored in this repo: Ucanet Domain Registry

License

Licensed under the AGPL-3.0 license.

Related Projects

  • TheOldNet, a deep dive into the Internet Archive made accesisble over an HTTP Proxy.
  • Vespernet, a project that started out as a fork of ucanet, with the same goal of separating the modern web from the retro web.
  • ProtoWeb, a refined archive of retro websites with added functionality and a growing community.
  • ucanet/ucanet-registry The domain registry for ucanet.
  • ucanet/ucanet-discord-bot A discord bot for managing ucanet domains.
  • ucanet/ucanet-python-lib A small library for interacting with the ucanet registry.

About

A DNS server that serves ucanet domains only

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages