This repository contains Docker configurations and scripts for deploying the PQR-Tunnel and PQR-KeyCrafter projects in a containerized environment. It supports client, server, and key generation containers, while maintaining modularity and independence.
- Multi-Container Setup: Includes Docker Compose for running client, server, and keygen containers.
- Modular Independence: Designed to work independently of PQR-Tunnel and PQR-KeyCrafter repositories, making it easier to expand or adapt to other frameworks (e.g., VMware, Kubernetes).
- Environment Variables:
.envfiles for easy configuration of container settings. - Automated Scripts: Scripts for building, starting, and stopping containers.
git clone https://github.com/Evaemon/PQR-Docker.git
cd PQR-DockerEnsure that the scripts in the scripts/ directory have executable permissions:
chmod +x scripts/*.shTo avoid permission errors while using Docker, follow these steps:
-
Add your user to the Docker group:
sudo usermod -aG docker $USER -
Restart your terminal or log out and back in for the changes to take effect.
-
Verify that Docker works without
sudo:docker ps
If this command runs without errors, your Docker setup is ready.
-
Start the Docker daemon if it is not already running:
sudo systemctl start docker
Run the following command to build the required containers:
bash scripts/build_containers.shThis script automatically pulls the required code from:
- PQR-Tunnel: https://github.com/Syslogine-dev/PQR-Tunnel
- PQR-KeyCrafter: https://github.com/Syslogine-dev/PQR-KeyCrafter
bash scripts/start_containers.shbash scripts/stop_containers.shIf you encounter a Permission Denied error while running any script or using Docker, follow these steps:
-
Ensure the script has executable permissions:
chmod +x scripts/<script_name>.sh
-
Add your user to the Docker group:
sudo usermod -aG docker $USER -
Restart your terminal or log out and back in.
-
Start the Docker daemon if it is not running:
sudo systemctl start docker
-
Retry the script:
bash scripts/<script_name>.sh
If you see an error indicating Docker is not installed:
-
Install Docker:
-
Verify the installation:
docker --version
-
Ensure Docker Compose is also installed:
docker-compose --version
-
Restart your terminal and retry the commands.
If you see an error like Cannot connect to the Docker daemon:
-
Ensure the Docker service is running:
sudo systemctl start docker
-
Add your user to the
dockergroup to avoid needingsudo:sudo usermod -aG docker $USER -
Log out and back in for the group changes to take effect.
-
Retry the command.
PQR-Docker/
├── docker-compose.yml # Docker Compose file for multi-container setup
├── Dockerfiles/ # Individual Dockerfiles for each service
│ ├── client.Dockerfile
│ ├── server.Dockerfile
│ ├── keygen.Dockerfile
├── config/ # Configuration files
│ ├── client.env
│ ├── server.env
│ ├── shared.env
├── scripts/ # Utility scripts for container management
│ ├── build_containers.sh
│ ├── start_containers.sh
│ ├── stop_containers.sh
└── README.md # Documentation
The Docker containers rely on the following projects:
- PQR-Tunnel: https://github.com/Syslogine-dev/PQR-Tunnel
Provides client and server scripts for setting up quantum-safe SSH tunnels. - PQR-KeyCrafter: https://github.com/Syslogine-dev/PQR-KeyCrafter
Provides tools for generating quantum-safe keys.
Ensure these repositories remain updated to avoid issues during the container build process.
Contributions are welcome! Please fork the repository and submit a pull request with your improvements.
This project is licensed under the MIT License. See the LICENSE file for details.