====== Internal Resources ====== * Wiki: http://dokuwiki.picalike.corpex-kunden.de/dokuwiki/doku.php (VPN, needs to be VPN!) * Git: http://git.picalike.corpex-kunden.de (no VPN) * Docker-Registry (Harbor): http://registry.picalike.corpex-kunden.de (no VPN) * Trello (dev-board): https://trello.com/b/HjU6UiVg/dev-board * Slack: ??? ====== general information ====== below you find quick guides to the most essential technologies in our tech-stack. please add additional information, if you needed clarification in order to help the others ====== pyenv ====== this is a tool to manage multiple python versions on your machine by compiling python from source and installing it into a special folder in your home folder. please follow the instructions on https://github.com/pyenv/pyenv to install it on your system if you found a bug, please add here below: * pyenv command not working on shell: https://github.com/pyenv/pyenv-installer/issues/103 * buildtools to install (doesn't solve by itsel): https://github.com/pyenv/pyenv/wiki#suggested-build-environment * command to install a python version: curl https://pyenv.run | bash * command to work in bash: * echo 'export PYENV_ROOT=“$HOME/.pyenv”' » ~/.bashrc echo 'export PATH=“$PYENV_ROOT/bin:$PATH”' » ~/.bashrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval “$(pyenv init -)“\nfi' » ~/.bashrc sudo apt-get update sudo apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev ====== pipenv ====== this tool is used to setup isolated virtual environments per project, in order to avoid dependency hell and to create “reproducable” development environments across multiple developers. it can be easily installed via `pip install pipenv` Documentation: https://pipenv.pypa.io/en/latest/ we have considered alternatives like poetry, but since we have not run into any practical limitations of pipenv yet, we will not switch to another technology for now. introducing a different tool should be a team decision. if you found a bug, please add here below: * error when run pipenv install: https://github.com/pypa/pipenv/issues/2470 ====== docker ====== we use docker to deploy our software installation guide: https://docs.docker.com/get-started/ it is useful to put your main user into the docker group e.g. https://www.howtogeek.com/50787/add-a-user-to-a-group-or-second-group-on-linux/ we sometimes use it in conjunction with docker-compose, which can be installed via pip `pip install docker-compose` documentation: https://docs.docker.com/compose/ ====== VPN Setup ====== ===== Wireguard ===== with wireguard (here are instructions for linux): install the appropriate wireguard-tools: https://www.wireguard.com/install/ generate a private and public key: wg genkey | tee /tmp/privatekey | wg pubkey > /tmp/publickey create a config file (e.g. corpex.conf): [Interface] Address = 10.8.0.2/32 # wait for response from corpex to get the correct IP PrivateKey = [Peer] PublicKey = e/Iw+N58HD+BduudCwNCzkBLsMWVYIjTEuL3BtAOJBk= AllowedIPs = 10.8.0.0/24, 10.4.30.0/24 Endpoint = 194.6.195.202:51820 PersistentKeepalive = 25 send contents of /tmp/pubkey to support@corpex.de to: support@corpex.de cc: dev@picalike.com title: new wireguard client body: Hello, here is my public key: Cheers, start the vpn device with: sudo wg-quick up example output from wg when everything is working: sudo wg [sudo] password for bjoern: interface: corpex public key: Oesue5HR4d2rA41xGAThcmiVCY+HXao9W/mdaQ7oYVY= private key: (hidden) listening port: 57902 peer: e/Iw+N58HD+BduudCwNCzkBLsMWVYIjTEuL3BtAOJBk= endpoint: 194.6.195.202:51820 allowed ips: 10.8.0.0/24, 10.4.30.0/24 latest handshake: 2 minutes ago transfer: 202.86 MiB received, 19.15 MiB sent persistent keepalive: every 25 seconds