====== 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