Add docker image

This commit is contained in:
Pierre Hubert 2022-03-27 18:29:26 +02:00
parent b25ca0f405
commit b39e07232c
4 changed files with 35 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/target
.idea
storage
image

10
Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM debian:bullseye-slim
COPY pages_server /usr/local/bin/pages_server
RUN mkdir /srv/web && chown 1000 /srv/web
USER 1000
ENV FILES_PATH /srv/web
CMD "/usr/local/bin/pages_server"

View File

@ -3,4 +3,19 @@ PagesServer is a very lightweight static web server that offer two main features
* Serve static content
* Allow easy update of the whole website from a CI/CD system through a POST request, protected by a token & by IP filtering.
This project has been written in Rust. It is based on the Actix framework.
This project has been written in Rust. It is based on the Actix framework.
## Publishing / updating website
Make a
* `POST` request on `http://<website>/_mgmt/replace_files`.
* Body:
* Multipart / Form-data body
* One field: `file` that contains a TAR archive of the website to publish
* Headers:
* `Token` (mandatory) : contains the push token that allow to post files
* `BaseURI` (optional) : defines the directory inside the tar archive to extract to storage directory
## Try it
```bash
docker run --rm -ti -p 8000:8000 -v $(pwd)/storage:/srv/web --env UPDATE_TOKEN=CHANGEME pierre42100/pages_server
```

8
build_docker.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/bash
cargo build --release
rm -rf image
mkdir image
cp target/release/pages_server image
docker build image -f Dockerfile -t pierre42100/pages_server