Generate WireGuard tunnel configs
Go to file
2023-04-17 20:14:19 +03:30
.github add toml to ci 2023-04-17 16:25:31 +03:30
.gitattributes Initial commit 2022-09-25 11:11:51 +03:30
.gitignore Update .gitignore 2023-04-17 15:05:53 +03:30
main.py fix problem 2023-04-17 20:14:19 +03:30
Makefile add install target 2023-04-17 15:06:05 +03:30
README.md Update README.md 2023-04-17 16:24:07 +03:30
requirements.txt add toml req 2023-04-17 16:07:23 +03:30

WireGuard config generator

made-with-python GitHub release Pylint CodeQL

This simple script will generate tunnel config files for WireGuard.

How to use

You need to give two file contains your information:

  • endpoints.toml : Contains the endpoints you want to connect to ( Name, Address ).
  • ip-list.toml : Contains the IP addresses you want to use.

And also give private/other information as a .env file.

endpoints.toml

Company-Server-1 = "wg-1.domain.xyz:1234"
Company-Server-2 = "wg-2.domain.xyz:1234"

ip-list.toml

[k8s]
DC1 = "1.2.3.4/32"
DC2 = "5.6.7.8.9/32"
DC3 = "1.2.3.4/27"

[monitoring]
prometheus = "1.2.3.4/32"
grafana = "5.6.7.8.9/32"

[other]
server1 = "1.2.3.4/32"
server2 = "5.6.7.8.9/32"
server3 = "1.2.3.4/27"

.env

PRIVATE_KEY=
PUBLIC_KEY=
ADDRESS=
MTU=
PERSISTENT_KEEPALIVE=

Note

: If you need extra data than the above, you should add your variables in main.py too.

Run

To generate config files for all endpoints, run:

make run

This script will create file(s) based on the given endpoints. In this example, it will create Company-Server-1.conf and Company-Server-2.conf files like this:

[Interface]
PrivateKey = <PRIVATE_KEY>
Address = <ADDRESS>
MTU = <MTU>

[Peer]
PublicKey = <PUBLIC_KEY>
Endpoint = wg-1.domain.xyz:1234
AllowedIPs = 1.2.3.4/32, 5.6.7.8/32, ...
PersistentKeepalive = <PERSISTENT_KEEPALIVE>

Now, you can import all generated configs in WireGuard.


Support 💛

Donate with Bitcoin Donate with Ethereum

ko-fi

Contributing 🤝

Don't be shy and reach out to us if you want to contribute 😉

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

Issues

Each project may have many problems. Contributing to the better development of this project by reporting them. 👍