diff --git a/Dockerfile b/Dockerfile index 5b1642b..84984e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,14 +3,15 @@ FROM alpine:latest LABEL maintainer="dselen@nerthus.nl" # Install Apache & Bash -RUN apk update && apk add --no-cache apache2 bash +RUN apk update \ + && apk add --no-cache apache2 bash # Suppress the ServerName warning -RUN echo "ServerName localhost" >> /etc/apache2/httpd.conf +RUN echo "ServerName localhost" >> /etc/apache2/httpd.conf \ + && mkdir /app \ + && mkdir /data COPY entrypoint.sh /entrypoint.sh -COPY ntos /var/www/localhost/htdocs/ - -EXPOSE 80 +COPY ntos /app ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 2b8e540..7afa717 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ Such a remote management system often provides a way to install an agent. To inc - A Debian installation medium, such as an USB-stick with Debian net(work)-inst(allation) or the CD/DVD media flashed onto it. (For flashing see: [rufus](https://rufus.ie/) / [Balena Etcher](https://www.balena.io/etcher))
+- Networking connectivity. (DHCP is easiest and fastest) + ### How to setup a webserver with NTOS files: 1. To set everything up, execute the `setup.sh` bash script and answer its questions.
@@ -33,14 +35,33 @@ Such a remote management system often provides a way to install an agent. To inc > For an example see [preseed-screen](./assets/images/debian12-preseed-screen.png).
-2. Refering to the webserver endpoints below - enter the IP-address or hostname of the webserver followed by `/configs//preseed.cfg`. By default the minimal configuration is available.
+2. Refering to the webserver endpoints below - enter the IP-address or hostname of the webserver (with the port) followed by `/configs//preseed.cfg`. By default the minimal configuration is available.
This makes the [Debian-installer](https://www.debian.org/devel/debian-installer/) use the preseed configuration for its installation.
The only manual input needed for installation is the partitioning, this is because this project has been made for a machine with 4GB total storage.
This means, if you have more than let's say 6GB total storage, then you can choose the Guided Partitioning (expert users can make something themselves).
+3. Now the machine will install itself using the selected configuration from ./ntos/configs (if you selected it correctly).
+ Just wait a while, the older the machine the slowed it will be. Once the installation is complete the machine will restart itself as per instruction of the preseed.
+ +4. Once the machine has succesfully booted into the Desktop Environment (DE) you have chosen (the default is XFCE4) open a terminal and enter:
+ `bash <(curl /configs/)`
+ This will initiate the 'finisher'-script, after which the install should be complete. + + > For examples see the image examples or the [images-directory](./assets/images) + +5. Enjoy! Linux is so much fun to use. 😉 + +## Image examples: + +![Preseed-screen](./assets/images/debian12-preseed-screen.png) +![Post-install desktop](./assets/images/debian12-postboot-desktop.png) +![Executing finish.sh](./assets/images/debian12-finishsh-progress.png) +![After installing and rebooting](./assets/images/debian12-postinstallreboot-desktop.png) +![Credask in action!](./assets/images/debian12-credask-inaction.png) + ## Webserver endpoint structure: -The Bash `setup.sh`-script copies the needed files to the specificied location on the system, preferably a webserver root. +The Bash `install.sh`-script copies the needed files to the specificied location on the system, preferably a webserver root. The following endpoints are available by default. This is needed for the new machine to set itself up. @@ -53,4 +74,8 @@ The following endpoints are available by default. This is needed for the new mac ``` The above `/rdp` endpoint requires you to place premade `.rdp` files in the directory before running `setup.sh`.
-Then the finish script will ask for which one to pick. \ No newline at end of file +Then the finish script will ask for which one to pick. + +## Epilogue + +Thanks! \ No newline at end of file diff --git a/assets/images/debian12-credask-inaction.png b/assets/images/debian12-credask-inaction.png new file mode 100644 index 0000000..948acab Binary files /dev/null and b/assets/images/debian12-credask-inaction.png differ diff --git a/assets/images/debian12-finishsh-progress.png b/assets/images/debian12-finishsh-progress.png new file mode 100644 index 0000000..7f1fd0c Binary files /dev/null and b/assets/images/debian12-finishsh-progress.png differ diff --git a/assets/images/debian12-postboot-desktop.png b/assets/images/debian12-postboot-desktop.png new file mode 100644 index 0000000..73b4184 Binary files /dev/null and b/assets/images/debian12-postboot-desktop.png differ diff --git a/assets/images/debian12-postinstallreboot-desktop.png b/assets/images/debian12-postinstallreboot-desktop.png new file mode 100644 index 0000000..2c9e818 Binary files /dev/null and b/assets/images/debian12-postinstallreboot-desktop.png differ diff --git a/docker/compose.yaml b/docker/compose.yaml new file mode 100644 index 0000000..a7a5fcf --- /dev/null +++ b/docker/compose.yaml @@ -0,0 +1,12 @@ +services: + ntos-server: + image: test:latest + #image: dselen/ntos-server:latest + container_name: ntos-server + restart: unless-stopped + ports: + - 8080:80/tcp + volumes: + - ntos_data:/data +volumes: + ntos_data: diff --git a/entrypoint.sh b/entrypoint.sh index 98f6c14..7b0c7c0 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,6 +1,15 @@ #!/bin/bash -echo "Starting NTOS-Server..." +echo "Configuring NTOS-Server..." + +cp -rv /app/* /data + +ln -s /data/assets /var/www/localhost/htdocs/assets +ln -s /data/configs /var/www/localhost/htdocs/configs +ln -s /data/credcon /var/www/localhost/htdocs/credcon +ln -s /data/rdp /var/www/localhost/htdocs/rdp + +echo "Done. Starting Apache2 webserver..." httpd -D FOREGROUND &