{"id":31850159,"url":"https://github.com/revertron/alfis","last_synced_at":"2025-10-12T11:18:27.958Z","repository":{"id":36980903,"uuid":"339468998","full_name":"Revertron/Alfis","owner":"Revertron","description":"Alternative Free Identity System","archived":false,"fork":false,"pushed_at":"2025-02-07T12:02:42.000Z","size":2412,"stargazers_count":315,"open_issues_count":59,"forks_count":30,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-02-07T13:19:57.086Z","etag":null,"topics":["blockchain","blockchain-network","blockchain-platform","blockchain-technology","dns","dns-alternative","dns-server","gui","p2p","privacy","rust"],"latest_commit_sha":null,"homepage":"https://alfis.name","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Revertron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Revertron","patreon":"Revertron","ko_fi":"Revertron"}},"created_at":"2021-02-16T17:00:43.000Z","updated_at":"2025-02-07T12:02:47.000Z","dependencies_parsed_at":"2024-01-11T01:41:06.766Z","dependency_job_id":"a89f62e1-5ea0-4e2e-a463-99302564529b","html_url":"https://github.com/Revertron/Alfis","commit_stats":null,"previous_names":[],"tags_count":94,"template":false,"template_full_name":null,"purl":"pkg:github/Revertron/Alfis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Revertron%2FAlfis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Revertron%2FAlfis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Revertron%2FAlfis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Revertron%2FAlfis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Revertron","download_url":"https://codeload.github.com/Revertron/Alfis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Revertron%2FAlfis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011192,"owners_count":26084899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","blockchain-network","blockchain-platform","blockchain-technology","dns","dns-alternative","dns-server","gui","p2p","privacy","rust"],"created_at":"2025-10-12T11:18:19.204Z","updated_at":"2025-10-12T11:18:27.950Z","avatar_url":"https://github.com/Revertron.png","language":"Rust","funding_links":["https://github.com/sponsors/Revertron","https://patreon.com/Revertron","https://ko-fi.com/Revertron"],"categories":[],"sub_categories":[],"readme":"# ![](/img/logo/32px.png) Alfis\n\n![Builds](https://github.com/Revertron/Alfis/actions/workflows/rust_build_and_test.yml/badge.svg)\n\nAlternative Free Identity System\n\nThis project represents a minimal blockchain without cryptocurrency, capable of sustaining any number of domain names in a bunch of original alternative zones.\nNot so clear? Hold on.\n\n## This software provides:\n- Very small and [peer-to-peer](https://en.wikipedia.org/wiki/Peer-to-peer) synchronized database of domain names.\nThe consistency of this database is based on [blockchain](https://en.wikipedia.org/wiki/Blockchain) technology, that prevents retroactive changing of data, and has strict cryptographical consensus.\n- DNS server with cache, like you have in your Internet-router. It resolves the domains from database and forwards all regular DNS-requests to some other resolver - your router, Google DNS, Cloudflare DNS, or [AdGuard DNS](https://dns.adguard.com/) (if you want to block ads and trackers).\n- Other systems need you to organize and run several DNS-servers to resolve their domains and regular domains, we have both in one.\nMoreover, ALFIS can forward requests of regular domains to [DNS-over-HTTPS](https://en.wikipedia.org/wiki/DNS_over_HTTPS) server. The security and privacy is right here.\n- Convenient graphical user interface to create domains in this alternative domain system. If you want just to use it like a DNS-server you can run it with `-n` flag or just build/download the variant without GUI.\n\n\n![Screenshot](img/keys.png)\n\n![Screenshot](img/domains2.png)\n\n![Screenshot](img/domains.png)\n\n## How it works?\nEvery node connects to its siblings and synchronizes the domain database.\nThis DB consists of cryptographically bound blocks, that contain encrypted domain names, contacts, and some info, if you wish.\nThere are 10 domain zones available to get domain in:\n`.anon`, `.btn`, `.conf`, `.index`, `.merch`, `.mirror`, `.mob`, `.screen`, `.srv`, `.ygg`.\nBut, `.anon` and `.ygg` are bound to have IP-addresses from Yggdrasil Network only.\n\n## Building and running\n\n### On every OS\nYou can download and run already built binaries from [releases](https://github.com/Revertron/Alfis/releases), or you can build project yourself.\n\nYou can build Alfis by issuing `cargo build --release` and `cargo run --release` commands in a directory of cloned repository.\n\nIf you want to build a version without GUI and without DoH:\n`cargo build --release --no-default-features`\nAnd this for build without GUI, but with DoH:\n`cargo build --release --no-default-features --features=\"doh\"`\n\n### ![Windows Logo](/img/windows.svg) On Windows\nYou don't need any additional steps to build Alfis, just stick to the MSVC version of Rust.\n\nIf you see an error about missing `VCRUNTIME140.dll` when running alfis you will need to install [VC Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=52685) from Microsoft.\n\nIf you want to use modern browser engine from Edge instead of old from IE, you need to build with this command: `cargo build --release --features \"edge\"` (or use corresponding build from [releases](https://github.com/Revertron/Alfis/releases)).\n\n### ![Windows Logo](/img/windows.svg) On Windows (MINGW64)\nIf you'd rather use Gnu version of Rust you can build Alfis by these steps:\n```\npacman -S git mingw64/mingw-w64-x86_64-rust mingw64/mingw-w64-x86_64-cargo-c\ngit clone https://github.com/Revertron/Alfis.git\ncd Alfis\ncargo build\n```\n\n### ![Linux Logo](/img/linux.svg) On Linux\nIf you are building on Linux you must ensure that you have `libwebkitgtk` library installed.\nYou can do it by issuing this command: `sudo apt install libwebkit2gtk-4.0-dev` (on Debian/Ubuntu and derivatives).\n\n#### ![Arch Linux Logo](/img/archlinux.svg) On Arch Linux\n\nInstall from available [AUR package](https://aur.archlinux.org/packages/alfis) created by [@pztrn](https://github.com/pztrn):\n\n```sh\nyay -S alfis\n```\n\n####  \u003cimg src=\"https://www.gentoo.org/assets/img/logo/icon-192.png\" alt=\"Gentoo Logo\" width=16 height=16\u003e On Gentoo Linux\n\nAvailable in [dm9pZCAq overlay](https://github.com/gentoo-mirror/dm9pZCAq)\n```sh\neselect repository enable dm9pZCAq\nemerge --sync dm9pZCAq\nemerge net-dns/alfis\n```\n\n### \u003cimg src=\"https://nixos.org/favicon.ico\" alt=\"NixOS Logo\" style=\"height: 1em\"\u003e On Nix/NixOS\n`nix-shell` in this repo and then run `cargo build --release` and `cargo install` after you have entered the shell.\n\n## Installation\n\n### Debian/Ubuntu (only blockchain DNS, without GUI)\nIf you want to just use ALFIS as a DNS daemon and resolve domains in blockchain, as well as clearnet domains.\nYou just need to install `alfis` service from repo and change your resolver in `/etc/resolv.conf`.\nBeware of NetworkManager, it can change your resolvers at will.\n\n1. Download repository public key and add it to your APT\n```\ngpg --fetch-keys https://deb.revertron.com/key.txt\ngpg --export F244E16645D86D62 | sudo tee /usr/local/apt-keys/alfis.gpg \u003e /dev/null\n```\n2. Add repository path to sources list\n```\necho 'deb [signed-by=/usr/local/apt-keys/alfis.gpg] https://deb.revertron.com/ debian alfis' | sudo tee /etc/apt/sources.list.d/alfis.list\n```\n3. Update packages and install ALFIS\n```\nsudo apt update \u0026\u0026 sudo apt install alfis\n```\n4. Enable and start the service\n```\nsystemctl enable --now alfis\n```\nAfter that configuration is in file `/etc/alfis.conf` and data is saved to `/var/lib/alfis`.\nIf you have some DNS server bound to port 53, it will not properly start. Deal with it on your own.\n\n### openSUSE (without GUI)\n1. Add repo:\n```\nzypper ar --refresh obs://home:Werwolf2517 home:Werwolf2517\n```\n2. Refresh repos cache\n```\nzypper --gpg-auto-import-keys refresh\n```\n3. Install package\n```\nzypper install -y Alfis\n```\n4. Run daemon\n```\nsystemctl enable --now alfis\n```\n### Docker\nIf you want to run ALFIS in docker container, you can do this by running:\n```shell\ndocker run --rm --name alfis -p 53:53/tcp -p 53:53/udp cofob/alfis\n```\n\n### GUI version Windows/Linux/macOS (if you want to create and change domains)\nIf you want to create and manage your own domains on blockchain, you will need a version with GUI.\nYou can download it from [releases](https://github.com/Revertron/Alfis/releases) section, choose appropriate OS and architecture version.\nIt needs to be without `nogui` suffix.\n\nJust unzip that archive in some directory and run `alfis` (or `alfis.exe`) binary.\nBy default, it searches for config file, named `alfis.toml` in current working directory, and creates/changes `blockchain.db` file in the same directory.\nIf you want it to load config from another file you can command it so: `alfis -c /etc/alfis.conf`.\n\n## Roadmap\n1. Stabilize blockchain functions (domain transfer, info \u0026 contacts in UI), bug hunting and fixing.\n2. Change DNS server/proxy to own resource saving implementation (using trust-dns-proto for RR parsing).\n3. P2P traffic encryption (ECDH). ✅\n4. Web-GUI to manage you node from browser.\n\n## Remarkable contributions\n* [@umasterov](https://github.com/umasterov) contributed fantastic logo for this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevertron%2Falfis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevertron%2Falfis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevertron%2Falfis/lists"}