You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor build workflow to use TechnitiumLibrary as submodule and update build.md
Replaced all AssemblyReference usages with ProjectReference entries and added the TechnitiumLibrary repository as a git submodule for unified development. Updated build.md to reflect the simplified workflow, separating debug builds from publishing steps for Windows and Linux. Cleaned old instructions dependent on prebuilt release binaries and aligned documentation with the new integrated solution layout.
To build the Technitium DNS Server Windows Setup, you need to install [Microsoft Visual Studio Community 2022 (VS2022)](https://visualstudio.microsoft.com/vs/) and [Inno Setup](https://jrsoftware.org/isinfo.php) on your computer. Once you have it installed, follow the steps below:
5
+
### Windows or Linux
6
6
7
-
1.Open VS2022 and use the "Clone a repository" option to clone the [TechnitiumLibrary](https://github.com/TechnitiumSoftware/TechnitiumLibrary) project using the `https://github.com/TechnitiumSoftware/TechnitiumLibrary.git` URL. Once the repository is cloned and opened in VS2022, select the build mode to "Release" from the dropdown box in the toolbar and use the Build > Build Solution menu to build it.
7
+
1. Clone the repository and initialize the submodule.
8
8
9
-
2. Open VS2022 and use the "Clone a repository" option to clone the [DnsServer](https://github.com/TechnitiumSoftware/DnsServer) project using the `https://github.com/TechnitiumSoftware/DnsServer.git` URL in the same parent folder that you had cloned the TechnitiumLibrary repository in previous step. Once the repository is cloned and opened in VS2022, right click on the `DnsServerSystemTrayApp` project and click on the Publish menu to open the publish page. Click the Publish button on it to publish the project in `DnsServer\DnsServerWindowsSetup\publish` folder. Similarly, right click on the `DnsServerWindowsService` project and click on the Publish menu to open publish page and use the Publish button to publish the project in the same folder as that of the previous project.
2. Open `DnsServer.sln` in Visual Studio (Windows) or build with `dotnet` on Linux. Select **Debug** and build.
16
+
The TechnitiumLibrary source is built automatically as part of the solution.
17
+
18
+
---
19
+
20
+
## Windows Publishing
21
+
22
+
To create the Technitium DNS Server Windows Setup, install **Visual Studio 2022** and **Inno Setup**.
23
+
24
+
1. Open `DnsServer.sln`, select **Release**, and build the solution.
10
25
11
-
3. Open the `DnsServer\DnsServerWindowsSetup\DnsServerSetup.iss` file in Inno Setup and click on the Build > Compile menu to generate a Windows setup in `DnsServerWindowsSetup\Release` folder that you can then use to install Technitium DNS Server on Windows.
26
+
2. Publish the following projects to `DnsServer\DnsServerWindowsSetup\publish`:
12
27
13
-
## For Linux
28
+
*`DnsServerSystemTrayApp`
29
+
*`DnsServerWindowsService`
14
30
15
-
Follow the instructions given below to build and install the DNS server from source. These instructions are written for Ubuntu and Raspberry Pi OS but, you can easily follow similar steps on your favorite distro.
31
+
3. Open `DnsServerWindowsSetup\DnsServerSetup.iss` in Inno Setup and compile it to generate the installer.
32
+
33
+
---
34
+
35
+
## Linux Publishing
36
+
37
+
### 1. Install prerequisites
16
38
17
-
1. Install prerequisites like curl and git.
18
39
```
19
40
sudo apt update
20
41
sudo apt install curl git -y
21
42
```
22
43
23
-
2.Follow the [install instructions](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?tabs=dotnet9&pivots=os-linux-ubuntu-2404) to be able to install ASP.NET Core SDK on your distro. Use the instructions given in the link to install the repository for other distros not shown in below examples:
### 3. Install ASP.NET Core 9 SDK and optional QUIC support
37
49
38
-
3. Install ASP.NET Core 9 SDK and `libmsquic` for DNS-over-QUIC support.
39
50
```
40
51
sudo apt install dotnet-sdk-9.0 libmsquic -y
41
52
```
42
53
43
-
Note! If you do not plan to use DNS-over-QUIC or HTTP/3 support, or you intend to just build a docker image then you can skip installing `libmsquic`.
54
+
### 4. Clone repository and initialize submodule
44
55
45
-
4. Clone the source code for both [TechnitiumLibrary](https://github.com/TechnitiumSoftware/TechnitiumLibrary) and [DnsServer](https://github.com/TechnitiumSoftware/DnsServer) into the current folder.
You can now run the image that you have built using `docker compose` as shown below. You should edit the `docker-compose.yml` file if you wish to edit the container's configuration before running it.
92
+
### 8. Access the web console
93
+
94
+
Open:
93
95
94
96
```
95
-
sudo systemctl stop systemd-resolved
96
-
sudo systemctl disable systemd-resolved
97
-
sudo docker compose up -d
97
+
http://<server-ip>:5380/
98
98
```
99
99
100
-
9. Open the DNS server web console in a web browser using `http://<server-ip-address>:5380/` URL and set a login password to complete the installation.
0 commit comments