Skip to content
@Team-Goraebab

고래밥 🐳

도커를 쉽고 한 눈에! 초보 개발자를 위한 도커 GUI 오픈소스

Goraebab

Table of Contents

Introduce

Architecture

How to run Goraebab

How to use Goraebab

API documentation

How to contribute

Upcoming features

Contributors

 

Introduce

Problem

With the advancement of AI, the barriers to software development have significantly lowered. As a result, beginner developers can save considerable time in the implementation phase, and most projects now reach the deployment stage. In the deployment process, Docker has become an almost essential tool. However, for novice developers, managing containers, networks, and volumes through the Docker CLI can be quite challenging. In a survey conducted among developers, 30% of respondents expressed difficulties and frustrations related to the complexity of managing containers, networks, and volumes.

docker difficulty

Solution

Goraebab addresses this issue by enabling users to design Docker configurations visually in a GUI environment. Instead of manually managing containers, networks, and volumes through the CLI, developers can create, modify, and deploy entire Docker architectures through an intuitive, drag-and-drop interface. In addition, Goraebab provides educational tips and explanations about Docker, allowing beginners to learn while they develop. This approach simplifies complex configurations, reduces errors, speeds up the deployment process, and helps novice developers gain confidence with Docker concepts.

 

Architecture

Tech

Frontend

Next.js TypeScript Docker

Backend

Spring Boot MySQL MariaDB PostgreSQL Gradle Docker Github actions Swagger

System Architecture

 

How to run Goraebab

Note: The develop or main branch may be in an unstable or even broken state during development. Please use release-*  in order to get a stable versions.

Requirements

Hardware

Recommended Resources

  • CPU - 6 cores, 12 threads
  • RAM - 16 GB
  • Monitor resolution - 1470 x 956

 

Software

OS

  • Window 10 or higher
  • macOS 14(Sonoma) or higher
  • Linux ubnutu 20.04 or higher
  1. Install Docker and Docker-compose.

  2. Run docker daemon for external access. This tool uses HTTP communication between Dockers, so please note that it does not guarantee security.

    • Windows

      windows_docker_setting.png

    • Linux (Ubuntu)

      Docker docs about Linux Setting

      sudo systemctl edit docker.service
      
      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
    • macOS

      brew install socat
      socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock
  3. Secure Docker and Host Connection with TLS

    Docker docs about TLS settings

    It is highly recommended to use this tool with TLS configuration if it is intended for production development rather than simple learning or testing purposes. For a more secure connection between Docker and the host, it’s recommended to configure TLS (Transport Layer Security). TLS encrypts the data transmitted between Docker clients and the Docker daemon, ensuring that sensitive information and commands remain confidential and tamper-proof. By using TLS, you also authenticate both the client and server, which allows only verified users and applications to interact with Docker.

Execution

# Check if port 2387, DBMS DEAFULT port is available

git clone https://github.com/Team-Goraebab/Goraebab.git


# This tool support MySQL, Mariadb, Postgresql, Oracle

# Mac or Linux
chmod +x start.sh
./start.sh {DBMS name}  

# or

# Windows
./start.bat {DBMS name} 

 

How to use Goraebab

Pull image

To add an image, click the "Image" button in the left sidebar, then click the "+ Image" button in the right sidebar. For image addition, the Docker engine must be connected, indicated by a green connected status icon in the bottom bar if the connection is active. Images can be imported from your local computer or Docker Hub, with options to specify the image name and tag.
When retrieving images from Docker Hub, you can search for the desired image and select it; each image shows download counts, providing a measure of reliability. When importing from your local computer, you can either drag and drop the file or select a file path. The right sidebar displays the list of images you’ve added, and by clicking the toggle button, you can view detailed information for each image.

CREATE IMAGE

Create network

Click the "Network" button in the left sidebar, then press the "+ Custom Bridge" button in the right sidebar to create a network. You can set the network's name, subnet, gateway, and mode. You can also view the network's detailed information by clicking the "Network Info" button or using the toggle button. To link a host to the network, click the desired host and then press the link button to complete the connection. The connected host will be highlighted with a blue border.

CREATE NETWORK

Create volume

Click the "Volume" button in the left sidebar, then click the "+ Volume" button in the right sidebar to create a volume. When creating a volume, you can specify the volume's name, mount point, capacity, and type (e.g., Local, NFS, GlusterFS, Ceph). After creating the volume, click the "Volume Info" button or the toggle button to view detailed information about the volume.

CREATE VOLUME

Create host

By clicking the "Home" button in the bottom bar, you can create a host. When creating a host, you can set the host's name, type (local or remote), and the network to be connected. After creating the host, click the "Settings" button to configure the network, ports, mounts, environment variables, and commands. By clicking the "Edit" button, you can set the container name, and in the images tab, you can drag an image from the left sidebar to select the image to use for the container. By clicking the "Plus" button, you can connect a volume, and you can view the connected volumes by pressing the toggle button.

CREATE HOST

Load & Save blueprint

Click the "Blueprint List" button in the bottom bar to view all saved blueprints. The list shows each blueprint's name, creation date, and whether it is local or remote, and you can load or delete blueprints from this view. To save a new blueprint after creating it, click the "Save Blueprint" button in the bottom bar. Once saved, a container will be created and run in the Docker environment based on the blueprint settings. You can view the running container by clicking the "Container" button in the left sidebar.

SAVE BLUEPRINT LOAD BLUEPRINT

API documentation

You can check the API specification through localhost:2387/swagger.

How to contribute

1. Fork the Repository

  • Click the "Fork" button at the top right corner of this repository to create a copy under your own GitHub account.

2. Clone the Forked Repository

  • Clone the repository to your local machine using the following command
  • You must clone only Frontend or Backend Repository, not Goraebab Integrated Repository
    # Frontend
    git clone https://github.com/your-username/Goraebab-Frontend.git
    
    # Backend
    git clone https://github.com/your-username/Goraebab-Backend.git

3. Create a Branch

  • Create a new branch to work on your changes.
    git checkout -b feature/your-feature-name

4. Write Code

5. Commit Your Changes

  • Commit your changes with a meaningful commit message
    # Frontend
    git commit -m "TagName: commit message"
    # ex) git commit -m "Feat: Add new feature"
    
    # Backend
    git commit -m "[TagName/#{IssueNumber}] commit message" 
    # ex) git commit -m "[feature/#23] Add new feature" 

6. Push to Your Fork

  • Push your branch to your forked repository:
    git push origin feature/your-feature-name

7. Open a Pull Request

  • Navigate to the original repository and click on the "New Pull Request" button.

Upcoming features

  • More intuitive, beginner-friendly UI
  • Flexible option settings (ex. port)
  • Distinguish volume connections in the UI

Contributors

contributors

License

Goraeabab is licensed under the Apache 2.0 License. See the LICENSE file for details.

Pinned Loading

  1. Goraebab Goraebab Public

    Goraebab 🐳 Integrated Repository

    TypeScript 1

Repositories

Showing 4 of 4 repositories
  • Goraebab-Backend Public

    Goraebab 🐳 Backend Repository

    Team-Goraebab/Goraebab-Backend’s past year of commit activity
    Java 0 Apache-2.0 3 4 0 Updated Dec 3, 2024
  • Goraebab-Frontend Public

    Goraebab 🐳 Frontend Repository

    Team-Goraebab/Goraebab-Frontend’s past year of commit activity
    TypeScript 0 Apache-2.0 2 1 0 Updated Nov 10, 2024
  • .github Public
    Team-Goraebab/.github’s past year of commit activity
    0 0 0 0 Updated Nov 6, 2024
  • Goraebab Public

    Goraebab 🐳 Integrated Repository

    Team-Goraebab/Goraebab’s past year of commit activity
    TypeScript 0 Apache-2.0 1 0 0 Updated Nov 6, 2024

Top languages

Loading…

Most used topics

Loading…