Skip to content

Latest commit

 

History

History
78 lines (53 loc) · 3.51 KB

File metadata and controls

78 lines (53 loc) · 3.51 KB

Contributing

  1. Fork this repository
  • Optionally create a new git branch if your change is more than a small tweak (git checkout -b BRANCH-NAME-HERE)
  1. Follow the Podman Environment Instructions to set up a Podman dev environment. If you'd like to run Proxstar entirely on your own hardware, check out Setting up a full dev environment

  2. Create a Virtualenv to do your linting in

mkdir venv
python3.8 -m venv venv
source venv/bin/activate
  1. Make your changes locally, commit, and push to your fork
  • If you want to test locally, you should copy HACKING/.env.sample to HACKING/.env, and talk to an RTP about filling in secrets.
  • Lint and format your local changes with pylint proxstar and black proxstar
    • You'll need dependencies installed locally to do this. You should do that in a venv of some sort to keep your system clean. All the dependencies are listed in requirements.txt, so you can install everything with pip install -r requirements.txt. You'll need python 3.6 at minimum, though things should work up to python 3.8.
  1. Create a Pull Request on this repo for our Webmasters to review

Podman Environment Instructions

  1. Copy .env.template to .env and fill it out with the help of an RTP

  2. Create volume for postgres

mkdir HACKING/proxstar-postgres/volume

  1. Build the proxstar container and launch it on your system.

podman compose up -d

To access the proxstar WebUI, go to https://localhost:8000

  1. To stop all containers, use the provided script

podman compose down

Setting up a full dev environment (Advanced)

[!INFO] This is not required for most contributors

If you want to work on Proxstar using a 1:1 development setup, there are a couple things you're going to need

  • A machine you can
    • SSH into
      • With portforwarding (see man ssh for info on the -L option)
    • and run
      • Podman
      • Flask
      • Redis
      • Postgres
      • RQ
  • At least one (1) Proxmox host running Proxmox >6.3
  • A CSH account
  • An RTP (to tell you secrets)
  1. Configure your Proxmox node (Not required if you're using the CSH cluster)

I would recommend setting up a development account on your Proxmox node. Name it anything. (Maybe proxstartest?). This is necessary to grab authentication tokens and the like. It should have the same permissions as root@pam. You can accomplish this by creating a group in Datacenter > Permissions > Groups and adding Administrator permissions to the group, then adding your user to the group. If you do this, then it's easy to enable/disable it for development. You should also generate an SSH key for the user.

When you log into your Proxstar instance, it should auto-create the pool. If for some reason it doesn't, you can set up a pool on your Proxmox node with your CSH username. To do this, go into Datacenter > Permissions > Pools > Create.

  1. Set up your environment

If you're trying to run this all on a VM without a graphical web browser, you can forward traffic to your computer using SSH.

ssh [email protected] -L 8000:localhost:8000 -L 8001:localhost:8001

Firing off Jobs

To fire off a targets cleanup job, run a curl request:

curl -X POST http://localhost:8000/console/cleanup -F 'token={VNC_CLEANUP_TOKEN}'