Salamek / gitlab-tools

Web application providing tools not avaiable in GitLab CE (Gitlab push/pull mirror and more)
GNU General Public License v3.0
99 stars 15 forks source link

Documetation and Support for Building & Setting Up from Scratch #30

Closed dvn0 closed 3 years ago

dvn0 commented 3 years ago

Thanks for this nice project. I found it via your issue on the gitlab-mirrors project. I like your improvements, but I have to say that the additional complexity is a draw back for deployment.

It's convenient that you supply pre-built packages, but I need to be able to run gitlab-tools from the source provided in the repo. Your build instructions are useful, but they also expect me to install your prebuilt dependencies. I have been able to work around most of this on my own, but I'm still running into issues. Would you be willing to provide some additional support/docs on setting this up from source using only either system packages (any distro) or upstream source?

Salamek commented 3 years ago

@dvn0 well some of those prebuild dependencies are again my projects :-D or projects that are not in distro upstream package repository... So if i want a package install to be possible, i must provide prebuild depedencies that are missing by my self.

So if you don't trust my repository/packages there is one other ~sane option how to get this project working and that is using virtualenv + pip:

Installation from source

  1. Install venv, python3-virtualenv requirements to build a pycrypto
apt update
apt install virtualenv python3-virtualenv build-essential python3-dev
  1. Clone this repo
git clone https://github.com/Salamek/gitlab-tools.git
  1. Create virtualenv in same dir where repo clone is
virtualenv -p python3 gitlab-tools/venv

4 . Activate virtualenv

cd gitlab-tools
source venv/bin/activate
  1. Install depedencies ("requirements"), these are installed from Python Package Index (https://pypi.org/)

    pip3 install -r requirements.txt
  2. Run gitlab-tools CLI (it is same as running gitlab-tools when installed using prebuild package) from here you can continue with the setup mentioned in README.txt

    python3 manage.py

(If you don't want to use pip to install depedencies, you can also clone all depedencies from their upstream git / .tar.gz etc. and extract them [python packages not repo folders] next to the gitlab_tools folder [inside gitlab-tools folder] but that would be kinda crazy :P and it will give me a PTSD lol)

666. Ofc you will need to copy systemd .service files to /etc/systemd/system change ExecStart from:

ExecStart=/usr/bin/gitlab-tools celerybeat --config_prod --pid=${HOME}/celerybeat.pid --schedule=${HOME}/celery_beat.db

to

ExecStart=/path/to/gitlab-tools/venv/bin/python /path/to/gitlab-tools/manage.py  celerybeat --config_prod --pid=${HOME}/celerybeat.pid --schedule=${HOME}/celery_beat.db

and so on in other systemd .service files

777. Aaaand if you want to use uWSGI instead of integrated webserver, you will need to add:

pythonpath=/path/to/gitlab-tools/venv/bin/python

into the uwsgi INI config file and chage paths to your src install

dvn0 commented 3 years ago

Thanks for the instructions. This look similar to what's in the wiki, which I tried already. Had some problems in the end, but I'll have to follow up on that later. I'll open another issue if I can reproduce the problem.

Salamek commented 3 years ago

@dvn0 ah yes there is wiki page similar to this, it is(it was) missing the installation of build-essential python3-dev packages that are needed to build pycrypto...