Add docker image
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,4 @@
 | 
			
		||||
/target
 | 
			
		||||
.idea
 | 
			
		||||
storage
 | 
			
		||||
image
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Dockerfile
									
									
									
									
									
										Normal 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"
 | 
			
		||||
							
								
								
									
										17
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								README.md
									
									
									
									
									
								
							@@ -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
									
								
							
							
						
						
									
										8
									
								
								build_docker.sh
									
									
									
									
									
										Executable 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
 | 
			
		||||
		Reference in New Issue
	
	Block a user