Hi. I created a project called netenv.
It's a simple, network-based environment variable loader.
GitHub: https://github.com/aligoren/netenv
I'm looking for to new ideas or contributions. Actually, I'm still learning Golang. So, it would be nice if you give me feedback.
What does this project do?
This project allows you to share different environment files of a project you specify and the variables in these files from a single server to all connected networks. You can also create an exclude list, and restrict access to the network with the allowed IP.
This is not a web API. It works over TCP just like Redis.
It can be configured like that;
netenv.yml
global: addr: ":8080" auth: enabled: true # set this true if you want to use authentication username: admin password: admin iplist: - 0.0.0.0 - 127.0.0.1 envfiles: project1: default: dev environments: dev: path: /home/ali/pyt/test.env excludes: - MYSQL_USERNAME project2: default: dev environments: dev: path: /home/YOUR_USER/pyt/project2_dev.env stage: path: /home/YOUR_USER/pyt/project2_stage.env prod: path: /home/YOUR_USER/pyt/project2_prod.env
Let's say we have a python file to connect this server like that;
import socket HOST = "127.0.0.1" # The server's hostname or IP address PORT = 8080 # The port used by the server with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((HOST, PORT)) # s.sendall(b"echo\n") # s.sendall(b"auth:admin:admin:echo\n") # s.sendall(b"auth:admin:admin:file$project1:env$dev:var$name,TEST,MYSQL_USERNAME\n") s.sendall(b"auth:admin:admin:file$project1:env$dev:var$*\n") # s.sendall(b"auth:admin:admin:file$project1:env$dev:var$TEST\n") # s.sendall(b"auth:admin:admin:file$project2:env$prod:var$name\n") # s.sendall(b"file$project2:env$prod:var$name\n") #s.sendall(b"echo\n") data = s.recv(1024) print(f"Received: {data.decode('utf-8')}")
I don't know are there any projects like that. If there is a project like that, please let me know. I can stop to develop this project.
Have a nice day!
Top comments (0)