Add docker image
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,4 @@
 | 
				
			|||||||
/target
 | 
					/target
 | 
				
			||||||
.idea
 | 
					.idea
 | 
				
			||||||
storage
 | 
					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"
 | 
				
			||||||
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							@@ -4,3 +4,18 @@ PagesServer is a very lightweight static web server that offer two main features
 | 
				
			|||||||
* Allow easy update of the whole website from a CI/CD system through a POST request, protected by a token & by IP filtering.
 | 
					* 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