UksHub is web based VCS, project management and collaboration tool. GitHub's twin brother.
docker pull djolewalker/ukshub
Contributor | Full name | Student Id |
---|---|---|
erosdavid | David Ereš | R2 36/2021 |
JSTheGreat | Jovan Svorcan | R2 21/2021 |
djolewalker | Dimitrije Žarković Đolai | R2 17/2021 |
Current version of class diagram
TextX metamodel used for query string parsing
git clone https://github.com/djolewalker/UksHub.git
cd UksHub
# Create virtual environment
python -m venv venv
# Start virtual environment
.\venv\Scripts\activate
If you have problem with executing permissions on windows run next command as admin in power shell
Set-ExecutionPolicy RemoteSigned
You will need MySQL server (e.g. WAMP).
When you have MySql running on your device execute scripts/create_db_local.sql
script.
When database is ready we can migrate data.
# Migrate data
(venv)> pip install -r requirements.txt
(venv)> python manage.py makemigrations
(venv)> python manage.py migrate
Run server with next command:
(venv)> python manage.py runserver
App will be running on django's default port http://localhost:8000/
You will need docker installed on your machine.
# Run docker compose from root folder (ukshub) to run docker file
# Be patient first time
docker-compose up --build
# Follow instructions in docker-compose.yml file to run container from image on DockerHub
# Run docker compose with --force-recreate parameter to rebuild container from remote image
docker-compose up --build --force-recreate
App will be running on http://localhost:8083/
Git server is implemented with Gitolite. Clone repo is also available through http and git protocols.
# Upload your public key trough application to be able to work with repo via SSH protocol
git clone ssh://[email protected]:2222/{user}/{repo-name}.git
# Http and git protocols
git clone http://127.0.0.1:8083/{user}/{repo-name}.git
git clone git://127.0.0.1:9418/{user}/{repo-name}.git
-
Create bare repository locally on your pc
mkdir git-admin-dev cd git-admin-dev git init --bare
-
Set GIT_ADMIN_REMOTE to bare admin repository absolute path in django dev settings
... GIT_ADMIN_REMOTE = "D:\git-admin-dev" ...
-
Clone repo to project
git clone D:\git-admin-dev
-
Create initial file structure
cd git-admin-dev mkdir conf cd conf echo > gitolite.conf # go back to git-admin-dev folder cd .. mkdir keydir cd keydir echo > example.pub
-
Push initial setup to repo
git add * git commit -m "Initial setup" git push