Commit 78c0a10f authored by Munoz Gil's avatar Munoz Gil
Browse files

Added step-by-step installation guide in md

No related merge requests found
Showing with 246 additions and 0 deletions
+246 -0
# Step-by-Step Installation Guide
### Prerequisite: Access to Repos and Documentation
Ensure you have read access to the following repositories:
- **Frontend**: [Frontend GitLab Repo](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/moodledta)
- **Backend**: [Backend GitLab Repo](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/dtabackend)
- **Test Runner**: [Test Runner GitLab Repo](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/dtatestrunner)
### Prerequisite: Infra Downloads (VirtualBox & Ubuntu 22.04 LTS Desktop)
Download and install the following:
- [VirtualBox 7.0.14](https://download.virtualbox.org/virtualbox/7.0.14/VirtualBox-7.0.14-161095-Win.exe)
- [Ubuntu 22.04 LTS Desktop ISO](https://ubuntu.com/download/desktop/thank-you?version=22.04.3&architecture=amd64)
---
## Host Installation
1. Install **VirtualBox**.
2. [Optional] Install VirtualBox Guest Additions for better integration.
---
## Virtual Machine (VM) Installation
1. **Create a new VM** in VirtualBox with the following settings:
- **CPU**: 2 CPUs x 1 Core
- **RAM**: 4 GB
- **HDD**: 40 GB
- **Network**: Default settings
- **ISO Image**: Use the downloaded Ubuntu 22.04 LTS Desktop ISO
2. **Start the VM** and proceed with the installation:
- Choose `Install Ubuntu`.
- Select `Minimal Installation`.
- Accept default settings.
- Create a user (use your initials or a username of choice).
---
## Inside Ubuntu 22.04 LTS Desktop (Minimal Installation Setup)
1. Update the package list:
```bash
sudo apt update
```
2. Install required packages:
```bash
sudo apt install git openjdk-17-jdk maven docker.io docker-compose
```
3. Download and install **Eclipse IDE**:
- Download: [Eclipse IDE for Java EE Developers](https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2023-12/R/eclipse-jee-2023-12-R-linux-gtk-x86_64.tar.gz)
- Create an Eclipse directory:
```bash
sudo mkdir /opt/eclipse
sudo chown root:docker /opt/eclipse
```
- Unpack the downloaded file:
```bash
sudo tar xvzf ~/Downloads/eclipse-jee-2023-12-R-linux-gtk-x86_64.tar.gz -C /opt/eclipse
```
- Create a symbolic link for Eclipse:
```bash
sudo ln -s /opt/eclipse/eclipse /usr/local/bin/eclipse
```
---
## Loading Assets
1. Create a development directory and clone the repositories:
```bash
mkdir ~/dev
cd ~/dev
git clone <repository_url>
```
2. Start Eclipse:
- Create a new workspace under `~/dev`.
- Ensure `.gitignore` includes Eclipse project files.
3. Import the Maven projects from the file system into Eclipse.
4. If necessary, create a local Maven repository by following the documentation in the backend repository.
5. Add a dependency for `unifiedticketing`:
```bash
mvn deploy:deploy-file -DgroupId=de.hftstuttgart -DartifactId=unified-ticketing -Dversion=0.2.2 -Durl=file:./local-maven-repo/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=./local-maven-repo/unified-ticketing-0.2.2.jar
```
---
## Docker Setup
1. Create and configure a Docker Compose environment:
- Copy the `docker-compose.yaml` file from the repository.
- Spin up the services using:
```bash
docker-compose up -d
```
2. After starting **Moodle**:
- Install the DTA plugin.
- Configure Moodle to open the necessary ports and hosts:
- **Site Administration** > **Security** > **HTTP Security**.
- Set the DTA plugin backend URL to the Docker service name (e.g., `cahcedta:8080`).
3. Ensure read/write access to the host temp directory for the DTA plugin:
```bash
sudo chown root:docker /tmp/dta-tests
```
4. Configure Moodle:
- Create a new course.
- Add a new assignment.
- Set the assignment as **Dockerized Test Agent**.
- Provide the example repo in `teacher-dta-dir.txt`.
5. Add a submission and provide the example repo in `student-dir.txt`.
---
## Pushing Results
1. Create accounts:
- [GitLab Account](https://transfer.hft-stuttgart.de/gitlab) (HFT Transfer)
- [DockerHub Account](https://hub.docker.com/)
2. Add your accounts to the necessary groups in GitLab.
3. Create a Gitlab Access Token
To authenticate with GitLab, you will need to create a **Personal Access Token**. Follow these steps:
1. Log in to your GitLab account.
2. Navigate to the **User Settings** by clicking on your profile icon in the top-right corner.
3. Under **Access Tokens**, create a new token:
- **Name**: Choose a descriptive name (e.g., `GitLab Access Token`).
- **Scopes**: Select the appropriate scopes. For typical git operations, you will need:
- `api`
- `read_repository`
- `write_repository`
- **Expiration Date**: Set an expiration date (optional but recommended).
4. Click **Create Access Token** and save it securely. **This is the only time the token will be shown**.
4. Configure Git to Use the Access Token
Now that you have the access token, configure git to use it for authentication. Open a terminal and follow these steps:
1. **Cache Git Credentials** (to avoid entering the token multiple times):
```bash
git config --global credential.helper cache
```
This will cache your credentials for a short period of time.
2. **Set your Git Username**:
```bash
git config --global user.name "<your_name>"
```
Replace `<your_name>` with your GitLab username.
3. **Set your Git Email**:
```bash
git config --global user.email "<your_email>"
```
Replace `<your_email>` with the email associated with your GitLab account.
4. **Verify the Git Configuration**:
To check the configuration settings you just applied, use:
```bash
git config -l
```
This command will list all the global configurations for git.
5. **Use the Access Token** for Git Operations:
When you perform a git operation (such as `git clone`, `git pull`, or `git push`) that requires authentication, Git will prompt you for a username and password. Use the following:
- **Username**: Your GitLab username or email.
- **Password**: Paste the Personal Access Token you created earlier.
Git will then authenticate using the access token.
3. Push your results:
- Always pull before pushing:
```bash
git pull
```
- In case of conflicts:
```bash
git merge
```
- Push your changes:
```bash
git push
```
- Push the Docker image:
```bash
docker push <image>
```
---
## Running the Application
1. Create a directory for the **modta**:
```bash
mkdir ~/modta
cp -R ~/dev/dtabackend/ifc/generic-proxy/ ~/modta
```
2. Set up the environment:
```bash
sudo mkdir /tmp/dta-tests
sudo chown root:docker /tmp/dta-tests
export EGID=$(getent group docker | cut -d: -f3)
cd ~/modta
docker-compose up -d
```
3. Check if the containers are running successfully:
```bash
docker container ls
```
---
## Application Setup
1. **Moodle Installation**:
- Follow the Moodle documentation in the frontend repository: [Moodle DTA Docs](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/moodledta).
2. **Testing**:
- See the testing documentation in the backend repository: [Backend Test Docs](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/dtabackend).
3. **View Logs**:
```bash
docker logs -f <container_name>
```
4. **Stop Services**:
```bash
docker-compose down
```
---
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment