# zapret-discord-youtube: a packaged zapret setup for blocked Discord and YouTube

> This repository is a fork of Flowseal's zapret-discord-youtube that adds Linux configuration for zapret, the DPI desync tool, with a one command installer, a NixOS module, a strategy tester and a set of ready made configs. It ships the upstream binaries with checkable hashes and is MIT licensed, and the whole thing is aimed at networks where Discord and YouTube are throttled or blocked.

**kartavkun/zapret-discord-youtube** — Fork of Flowseal's zapret-discord-youtube repo with zapret configs for Linux

- Repository: https://github.com/kartavkun/zapret-discord-youtube
- Stars: 728 · Forks: 41
- Language: Shell
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/kartavkun-zapret-discord-youtube

## A fork that packages upstream binaries instead of rebuilding them

The project is a fork of Flowseal's zapret-discord-youtube repository, with the fork's own addition being the zapret configurations for Linux.

The note at the top of the readme is the important part. It says this repository is a non-commercial, user friendly build of the original zapret project by bol-van, and it is a mirror, with the Codeberg repository listed as the mirror location.

On the binary question the readme is specific and reassuring in a way that matters here. The build uses the original binaries with verifiable hashes, and the reason it can say that is that zapret is open source, so anyone can build the binaries from the source themselves. The MIT licence covers this repository, with the full text in the LICENSE.txt file at the root.

The top-level layout shows the shape of the work. There is setup.sh for the Linux installer, install.sh, a configs/ directory holding the ready made configurations, hostlists/ with the domain lists, a module/ and nixos/ pair for the NixOS integration, a flake.nix at the root, and a utils/ directory with utility scripts including utils-zapret.sh.

The repository is not archived, the default branch is main, and the last push was on 2026-10-19. There are no GitHub releases, so the install script pulling the latest version from the official upstream repository is the intended update path.

## The Linux install is a single piped command

The quick install for Linux users is one line, and it is worth reading before running it rather than after:

```bash
bash <(curl -s https://raw.githubusercontent.com/kartavkun/zapret-discord-youtube/main/setup.sh)
```

The pattern is bash reading a process substitution, which is the output of curl fetching a script from a raw GitHub URL. The script is executed without ever being written to disk, and the URL points at the main branch, so the content is whatever is on main at the moment you run it.

The readme lists what the installer does, and the list is short enough to check against what you expect. It detects your Linux distribution automatically, installs the necessary dependencies, which are wget and git, downloads the latest version of zapret from the official repository, configures the system for zapret to work, and then offers an interactive configuration choice.

There is an alternative form given for cases where the first one does not work, which pipes the fetched script through psub before handing it to bash.

One side effect is worth knowing about. If you accept the offer to add aliases during installation, those aliases, which make zapret-utils and zapret-config available, only take effect in new terminal sessions. To use them in an already open terminal you have to source the shell profile yourself, for example with source ~/.bashrc, or the equivalent for whichever shell you use.

## Configs come in named variants and the default is usually right

After installation, the configuration is chosen through a menu, either by running the install script in the configs directory directly or through the alias:

```bash
$HOME/zapret-configs/install.sh
```

or, with the alias in place:

```bash
zapret-config
```

The available configurations are listed by name, and the naming tells you what each one is. general is the base configuration, and general(ALT) through general(ALT11) are alternative variants of it. There is a general (FAKE_TLS_AUTO) family with automatic TLS generation, and a general (SIMPLE FAKE) configuration described as optimised for MTS.

The readme gives a specific instruction about what to do when the script asks for confirmation after you pick a configuration. It says the script will run install_easy.sh, which will ask you to confirm, and that you should simply press ENTER to accept the default values. That is advice aimed at users who want the configuration to work rather than tune it.

There is also a note about a message that appears on some exotic distributions, where the installer detects a read-only system and warns that startup configuration will not be possible and that manual startup configuration is required, asking whether to continue. The advice there is to answer Y in order to install zapret.

The hostlists/ directory at the root holds the domain lists, and the readme has a section on adding addresses of other resources to the lists, which is how you extend the setup beyond the services these configs target.

## NixOS gets a module and a strategy tester

The NixOS path is the most developed part of the fork, and it comes with its own tooling for choosing a configuration.

The readme warns at the start that every NixOS configuration is unique, so the example has to be adapted, and it should be used only as a reference point. To use flakes, you add the experimental features setting to /etc/nixos/configuration.nix:

```nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];
```

The flake example takes an input from this repository and imports a module, and the service options are set under services.zapret-discord-youtube. The options include enable, a configName naming one of the configs in the configs folder, a gameFilter that can be null to disable it or all, tcp or udp to restrict it, and lists for custom domains and for exclusions, plus lists of IP addresses for the ipset files:

```nix
          services.zapret-discord-youtube = {
            enable = true;
            listGeneral = [ "example.com" "test.org" "mysite.net" ];
            listExclude = [ "ubisoft.com" "origin.com" ];
```

There are also optional entries for extra hostlists and extra configurations, and a commented example of an nfqwsAppend option for a fully manual config.

The testing tool is the part that makes the NixOS path worth the effort. Because /nix/store is read only, the test tools are enabled by importing the withTestTools module:

```nix
zapret-discord-youtube.nixosModules.withTestTools
```

After nixos-rebuild switch, you run:

```bash
sudo zapret-test-strategies
```

The utility creates a temporary writable copy of zapret under /run/zapret-discord-youtube-test, writes logs to /var/log/zapret-discord-youtube-test, and returns the main service afterwards. The main results are kept in files named test-zapret-*.txt, and the zapret restart output goes to restart.log. If the test tools are not needed, the ordinary module is zapret-discord-youtube.nixosModules.default.

## What this project is not

A few boundaries are worth stating plainly, because the name invites assumptions.

This is not a proxy, a VPN, or a traffic tunnel in the usual sense. It is a configuration collection for an existing tool. The mechanism belongs to zapret, and the work in this repository is choosing parameters that work on networks where the target services are being interfered with, and packaging that choice so a user can apply it without reading the upstream documentation first.

The scope of the configs is Discord and YouTube. The variants and the hostlists in the repository are aimed at those services and at the MTS network specifically for the SIMPLE FAKE option, and the readme's section on adding other addresses is a section on extending a list that already exists rather than on a general purpose unblocking tool.

The platform is Linux. The one command installer detects a Linux distribution, and the NixOS integration is for NixOS. A Windows or macOS user needs the upstream project and its own instructions.

The licensing is worth reading carefully in context. The MIT licence covers this repository, and the readme describes the build as non-commercial, and the note about the binaries having verifiable hashes, and the option to build from source, all point the same way: this is a convenience distribution of someone else's open source tool, with a specific set of configurations, rather than a fork with its own implementation of the desync logic. That matters for anyone who wants to change how the traffic shaping works, since the changes belong upstream.

## Conclusion

zapret-discord-youtube suits a Linux user on a network that throttles or blocks Discord and YouTube and who wants a working configuration in minutes rather than a day of reading about DPI desync. It does not suit a Windows user, a macOS user, or anyone who needs support for services other than the ones these configs target. Before running the installer, read what the setup script does to your system, and on NixOS use the withTestTools module and sudo zapret-test-strategies to compare strategies before committing to a config name, since each NixOS configuration is unique and the examples are only a starting point.

## FAQ

### What is zapret-discord-youtube?

It is a fork of Flowseal's zapret-discord-youtube repository that adds zapret configurations for Linux. It is a non-commercial, user friendly build of the original zapret project by bol-van, published under the MIT licence and mirrored on Codeberg.

### How do I install zapret-discord-youtube on Linux?

Run the one line installer, which detects your distribution, installs wget and git, downloads the latest zapret from the official repository, configures the system and offers an interactive configuration choice. The readme notes that accepted aliases only become available in new terminal sessions, so you need to source your shell profile in an already open terminal.

### Which configurations does zapret-discord-youtube ship?

general is the base configuration, general(ALT) through general(ALT11) are alternative variants, there is a general (FAKE_TLS_AUTO) family with automatic TLS generation, and general (SIMPLE FAKE) is optimised for MTS. The readme advises simply pressing ENTER to accept the default values when the script asks for confirmation.

### How do I test zapret strategies on NixOS?

Import the withTestTools module, run nixos-rebuild switch, then run sudo zapret-test-strategies. The utility creates a writable copy of zapret under /run/zapret-discord-youtube-test, writes logs to /var/log/zapret-discord-youtube-test, and leaves the main results in test-zapret-*.txt files with the restart output in restart.log.

### Does this repository include its own binaries?

The readme states that the build uses the original upstream binaries with verifiable hashes, and that since zapret is open source you can always build the binaries from the source yourself. Changes to the desync logic itself belong to the upstream project.

## Sources

- [Issues](https://github.com/kartavkun/zapret-discord-youtube/issues)
- [kartavkun/zapret-discord-youtube on GitHub](https://github.com/kartavkun/zapret-discord-youtube)
- [License: MIT](https://github.com/kartavkun/zapret-discord-youtube/blob/main/LICENSE)
- [README](https://github.com/kartavkun/zapret-discord-youtube/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kartavkun-zapret-discord-youtube
