Add basic Flask/Jinja setup and basic YAML config
This commit is contained in:
		
							parent
							
								
									c2d8d5af22
								
							
						
					
					
						commit
						657ee72ecb
					
				
					 4 changed files with 64 additions and 0 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -102,3 +102,6 @@ venv.bak/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# mypy
 | 
					# mypy
 | 
				
			||||||
.mypy_cache/
 | 
					.mypy_cache/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# PyCharm
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								config.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								config.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					# Username to make admin API requests
 | 
				
			||||||
 | 
					admin_username: 'admin'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Plaintext password to make admin API requests
 | 
				
			||||||
 | 
					# Safe to remove if admin_hashed_password is set
 | 
				
			||||||
 | 
					#admin_password: 'password'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Hashed password (bcrypt) to make admin API requests - Preferred over plaintext, use securepass.sh to generate
 | 
				
			||||||
 | 
					admin_hashed_password: 'test'
 | 
				
			||||||
							
								
								
									
										28
									
								
								liteshort.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								liteshort.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					from flask import Flask
 | 
				
			||||||
 | 
					import yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def load_config():
 | 
				
			||||||
 | 
					    new_config = yaml.load(open("config.yml"))
 | 
				
			||||||
 | 
					    if "admin_hashed_password" in new_config.keys():
 | 
				
			||||||
 | 
					        new_config["password"] = new_config["admin_hashed_password"]
 | 
				
			||||||
 | 
					    elif "admin_password" in new_config.keys():
 | 
				
			||||||
 | 
					        new_config["password"] = new_config["admin_password"]
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        raise Exception("admin_password or admin_hashed_password must be set in config.yml")
 | 
				
			||||||
 | 
					    return new_config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config = load_config()
 | 
				
			||||||
 | 
					print(config["password"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app = Flask(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@app.route('/')
 | 
				
			||||||
 | 
					def hello_world():
 | 
				
			||||||
 | 
					    return 'Hello World!'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    app.run()
 | 
				
			||||||
							
								
								
									
										24
									
								
								securepass.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								securepass.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## bcrypt passwd generator ##
 | 
				
			||||||
 | 
					#############################
 | 
				
			||||||
 | 
					CMD=$(which htpasswd 2>/dev/null)
 | 
				
			||||||
 | 
					OPTS="-nBC 15"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read -p "Username: " USERNAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					check_config() {
 | 
				
			||||||
 | 
					    if [ -z $CMD ]; then
 | 
				
			||||||
 | 
					        printf "Exiting: htpasswd is missing.\n"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ -z "$USERNAME" ]; then
 | 
				
			||||||
 | 
					            usage
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					check_config $USERNAME
 | 
				
			||||||
 | 
					printf "Generating Bcrypt hash for username: $USERNAME\n\n"
 | 
				
			||||||
 | 
					$CMD $OPTS $USERNAME
 | 
				
			||||||
 | 
					exit $?
 | 
				
			||||||
		Reference in a new issue