namespace all our variables
This commit is contained in:
		
							parent
							
								
									14508183ab
								
							
						
					
					
						commit
						458f791fe3
					
				
					 4 changed files with 17 additions and 12 deletions
				
			
		
							
								
								
									
										13
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
										
									
									
									
								
							|  | @ -21,9 +21,14 @@ | ||||||
| ## configuration | ## configuration | ||||||
| 
 | 
 | ||||||
| transbeam is configured with the following environment variables: | transbeam is configured with the following environment variables: | ||||||
| - `STORAGE_DIR`: path where uploaded files should be stored (default: `./storage`) | - `TRANSBEAM_STORAGE_DIR`: path where uploaded files should be stored (default: `./storage`) | ||||||
| - `STATIC_DIR`: path where the web app's static files live (default: `./static`) | - `TRANSBEAM_STATIC_DIR`: path where the web app's static files live (default: `./static`) | ||||||
| - `PORT`: port to listen on localhost for http requests (default: 8080) | - `TRANSBEAM_PORT`: port to listen on localhost for http requests (default: 8080) | ||||||
|  | - `TRANSBEAM_MAX_LIFETIME`: maximum number of days files can be kept for (default: 30) | ||||||
|  | - `TRANSBEAM_MAX_UPLOAD_SIZE`: maximum size, in bytes, of a fileset | ||||||
|  |   being uploaded (default: 16GiB) | ||||||
|  | - `TRANSBEAM_MAX_STORAGE_SIZE`: maximum total size, in bytes, of all | ||||||
|  |   files being stored by transbeam (default: 64GiB) | ||||||
| - `RUST_LOG`: log levels, for the app as a whole and/or for specific | - `RUST_LOG`: log levels, for the app as a whole and/or for specific | ||||||
|   submodules/libraries. See |   submodules/libraries. See | ||||||
|   [`env_logger`](https://docs.rs/env_logger/latest/env_logger/)'s |   [`env_logger`](https://docs.rs/env_logger/latest/env_logger/)'s | ||||||
|  | @ -37,7 +42,7 @@ transbeam is configured with the following environment variables: | ||||||
| nix run git+https://git.xeno.science/xenofem/transbeam?ref=main | nix run git+https://git.xeno.science/xenofem/transbeam?ref=main | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| (The Nix package is wrapped with `STATIC_DIR` set automatically to the | (The Nix package is wrapped with `TRANSBEAM_STATIC_DIR` set automatically to the | ||||||
| correct Nix store path, so it'll serve the static files properly | correct Nix store path, so it'll serve the static files properly | ||||||
| no matter what directory you run it from.) | no matter what directory you run it from.) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ | ||||||
|             buildInputs = [ pkgs.makeWrapper ]; |             buildInputs = [ pkgs.makeWrapper ]; | ||||||
|             postBuild = '' |             postBuild = '' | ||||||
|               wrapProgram $out/bin/${name} \ |               wrapProgram $out/bin/${name} \ | ||||||
|                 --set STATIC_DIR ${./static} |                 --set TRANSBEAM_STATIC_DIR ${./static} | ||||||
|             ''; |             ''; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -57,8 +57,8 @@ async fn main() -> std::io::Result<()> { | ||||||
|     start_reaper(data.clone()); |     start_reaper(data.clone()); | ||||||
| 
 | 
 | ||||||
|     let static_dir = |     let static_dir = | ||||||
|         PathBuf::from(std::env::var("STATIC_DIR").unwrap_or_else(|_| String::from("static"))); |         PathBuf::from(std::env::var("TRANSBEAM_STATIC_DIR").unwrap_or_else(|_| String::from("static"))); | ||||||
|     let port = std::env::var("PORT") |     let port = std::env::var("TRANSBEAM_PORT") | ||||||
|         .ok() |         .ok() | ||||||
|         .and_then(|p| p.parse::<u16>().ok()) |         .and_then(|p| p.parse::<u16>().ok()) | ||||||
|         .unwrap_or(8080); |         .unwrap_or(8080); | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/store.rs
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/store.rs
									
										
									
									
									
								
							|  | @ -12,12 +12,12 @@ const STATE_FILE_NAME: &str = "files.json"; | ||||||
| const DEFAULT_STORAGE_DIR: &str = "storage"; | const DEFAULT_STORAGE_DIR: &str = "storage"; | ||||||
| const DEFAULT_MAX_LIFETIME: u32 = 30; | const DEFAULT_MAX_LIFETIME: u32 = 30; | ||||||
| const GIGA: u64 = 1024*1024*1024; | const GIGA: u64 = 1024*1024*1024; | ||||||
| const DEFAULT_MAX_SINGLE_SIZE: u64 = 16*GIGA; | const DEFAULT_MAX_UPLOAD_SIZE: u64 = 16*GIGA; | ||||||
| const DEFAULT_MAX_TOTAL_SIZE: u64 = 64*GIGA; | const DEFAULT_MAX_STORAGE_SIZE: u64 = 64*GIGA; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| pub(crate) fn storage_dir() -> PathBuf { | pub(crate) fn storage_dir() -> PathBuf { | ||||||
|     PathBuf::from(std::env::var("STORAGE_DIR").unwrap_or_else(|_| String::from(DEFAULT_STORAGE_DIR))) |     PathBuf::from(std::env::var("TRANSBEAM_STORAGE_DIR").unwrap_or_else(|_| String::from(DEFAULT_STORAGE_DIR))) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn parse_env_var<T: FromStr>(var: &str, default: T) -> T { | fn parse_env_var<T: FromStr>(var: &str, default: T) -> T { | ||||||
|  | @ -29,11 +29,11 @@ pub(crate) fn max_lifetime() -> u32 { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub(crate) fn max_single_size() -> u64 { | pub(crate) fn max_single_size() -> u64 { | ||||||
|     parse_env_var("TRANSBEAM_MAX_SINGLE_FILE_SIZE", DEFAULT_MAX_SINGLE_SIZE) |     parse_env_var("TRANSBEAM_MAX_UPLOAD_SIZE", DEFAULT_MAX_UPLOAD_SIZE) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub(crate) fn max_total_size() -> u64 { | pub(crate) fn max_total_size() -> u64 { | ||||||
|     parse_env_var("TRANSBEAM_MAX_TOTAL_FILE_SIZE", DEFAULT_MAX_TOTAL_SIZE) |     parse_env_var("TRANSBEAM_MAX_STORAGE_SIZE", DEFAULT_MAX_STORAGE_SIZE) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #[derive(Clone, Deserialize, Serialize)] | #[derive(Clone, Deserialize, Serialize)] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue