[GH-ISSUE #3069] [feature]: add docker images to dockerhub #1005

Closed
opened 2026-03-16 18:01:29 +03:00 by kerem · 14 comments
Owner

Originally created by @gaozhidf on GitHub (May 22, 2023).
Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/3069

Is there an existing issue for this?

  • I have searched the existing issues

Summary

can u add docker images to dockerhub, and we can setup the backend services quickly.
something like https://github.com/gaozhidf/hoppscotch-docker-compose/tree/main

Why should this be worked on?

newman can setup the backend services quickly

Originally created by @gaozhidf on GitHub (May 22, 2023). Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/3069 ### Is there an existing issue for this? - [X] I have searched the existing issues ### Summary can u add docker images to dockerhub, and we can setup the backend services quickly. something like https://github.com/gaozhidf/hoppscotch-docker-compose/tree/main ### Why should this be worked on? newman can setup the backend services quickly
kerem 2026-03-16 18:01:29 +03:00
Author
Owner

@webysther commented on GitHub (May 27, 2023):

yeah, will be incredable, maybe using the lsio model, works well, fast to deploy and have the best boilerplate structure for keep up and running, just check out ref @liyasthomas, maybe ask for help to the guys!

<!-- gh-comment-id:1565180679 --> @webysther commented on GitHub (May 27, 2023): yeah, will be incredable, maybe using the lsio model, works well, fast to deploy and have the best boilerplate structure for keep up and running, [just check out](https://docs.linuxserver.io/general/running-our-containers#base-images) [ref](https://www.linuxserver.io/#standardised-images) @liyasthomas, maybe ask for help to the guys!
Author
Owner

@webysther commented on GitHub (May 27, 2023):

As a suggestion, in getting started, just put this in the first for docker:

version: '3.9'

services:
  hoppscotch:
    image: hoppscotch/hoppscotch
    container_name: app-hoppscotch
    networks:
      hoppscotch:
    ports:
      - 3000:3000

networks:
  hoppscotch:
    name: hoppscotch

Fast to start the hands-on, i got this from this video

<!-- gh-comment-id:1565181102 --> @webysther commented on GitHub (May 27, 2023): As a suggestion, in getting started, just put this in the first for docker: ```yaml version: '3.9' services: hoppscotch: image: hoppscotch/hoppscotch container_name: app-hoppscotch networks: hoppscotch: ports: - 3000:3000 networks: hoppscotch: name: hoppscotch ``` Fast to start the hands-on, i got this [from this video](https://www.youtube.com/watch?v=l2DWcWb9HlM)
Author
Owner

@webysther commented on GitHub (May 27, 2023):

Send all requests to same container just changing the port and support sqlite, this will help so many devs around, my suggestion:

version: '3.9'

services:
  hoppscotch:
    image: hoppscotch/hoppscotch
    container_name: app-hoppscotch
    networks:
      hoppscotch:
    # stack is used on portainer
    env_file: stack.env
    volumes:
      # along with backend add sqlite
      - /home/docker/hoppscotch:/data 
    ports:
      - 3000:3000 # frontent
      - 3001:3001 # backend
      - 3100:3100 # admin

networks:
  hoppscotch:
    name: hoppscotch

Its perfect to have all services decoupled, but for self-hosted the deploy-time/maintenance is the key.

<!-- gh-comment-id:1565183552 --> @webysther commented on GitHub (May 27, 2023): Send all requests to same container just changing the port and support sqlite, this will help so many devs around, my suggestion: ```yaml version: '3.9' services: hoppscotch: image: hoppscotch/hoppscotch container_name: app-hoppscotch networks: hoppscotch: # stack is used on portainer env_file: stack.env volumes: # along with backend add sqlite - /home/docker/hoppscotch:/data ports: - 3000:3000 # frontent - 3001:3001 # backend - 3100:3100 # admin networks: hoppscotch: name: hoppscotch ``` Its perfect to have all services decoupled, but for self-hosted the deploy-time/maintenance is the key.
Author
Owner

@webysther commented on GitHub (May 28, 2023):

Step by step instructions for a "just works" release:

# if you want a clean vm install [multipass](https://multipass.run/)
# Create a vm with docker ready or install docker and git
multipass launch -c 4 --m 16G -n docker docker

# node + npm + pnpm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install Hydrogen; npm install -g npm; npm install -g pnpm

# get the code
git clone https://github.com/hoppscotch/hoppscotch.git
cd hoppscotch

# move to tag
git checkout tags/2023.4.3; cp .env.example .env

# Change YOURDOMAN for example.com
sed -i 's/localhost/YOURDOMAN/g' .env

# For subdomain
sed -i 's/localhost:3000/hoppscotch.YOURDOMAN/g' .env
sed -i 's/localhost:3100/admin.hoppscotch.YOURDOMAN/g' .env
sed -i 's/localhost:3170/api.hoppscotch.YOURDOMAN/g' .env
sed -i 's/http:/https:/g' .env

# Create the passwords
sed -i "s/secret1233/$(openssl rand -base64 14)/g" .env
sed -i "s/add some secret here/$(openssl rand -base64 14)/g" .env

# dummy SMTP
sed -i '/MAILER_SMTP_URL/d' .env
echo 'MAILER_SMTP_URL=smtp://hoppscotch-smtp:1025' >> .env

# build
pnpm install; docker-compose up --build -d

# dummy smtp
docker run -d --name hoppscotch-smtp \
           -p 1080:1080 -p 1025:1025 \
           -e "EMAIL_HOST_PASSWORD=$(openssl rand -base64 14)" \
           -e "EMAIL_HOST_USER=hoppscotch" \
           --network=hoppscotch_default \
           dockage/mailcatcher:0.8.2

# migrate
docker exec -it hoppscotch-backend pnpm exec prisma migrate deploy

# now is working
# maybe you have login problems, in this case put the in a https domain
  • Remove all
docker stop hoppscotch-smtp; docker rm hoppscotch-smtp
docker compose down
cd ../
rm -rf hoppscotch

Custom location will not work because the admin assets is fix to path /, validate the #3060

<!-- gh-comment-id:1565765022 --> @webysther commented on GitHub (May 28, 2023): Step by step instructions for a "just works" release: ```sh # if you want a clean vm install [multipass](https://multipass.run/) # Create a vm with docker ready or install docker and git multipass launch -c 4 --m 16G -n docker docker # node + npm + pnpm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install Hydrogen; npm install -g npm; npm install -g pnpm # get the code git clone https://github.com/hoppscotch/hoppscotch.git cd hoppscotch # move to tag git checkout tags/2023.4.3; cp .env.example .env # Change YOURDOMAN for example.com sed -i 's/localhost/YOURDOMAN/g' .env # For subdomain sed -i 's/localhost:3000/hoppscotch.YOURDOMAN/g' .env sed -i 's/localhost:3100/admin.hoppscotch.YOURDOMAN/g' .env sed -i 's/localhost:3170/api.hoppscotch.YOURDOMAN/g' .env sed -i 's/http:/https:/g' .env # Create the passwords sed -i "s/secret1233/$(openssl rand -base64 14)/g" .env sed -i "s/add some secret here/$(openssl rand -base64 14)/g" .env # dummy SMTP sed -i '/MAILER_SMTP_URL/d' .env echo 'MAILER_SMTP_URL=smtp://hoppscotch-smtp:1025' >> .env # build pnpm install; docker-compose up --build -d # dummy smtp docker run -d --name hoppscotch-smtp \ -p 1080:1080 -p 1025:1025 \ -e "EMAIL_HOST_PASSWORD=$(openssl rand -base64 14)" \ -e "EMAIL_HOST_USER=hoppscotch" \ --network=hoppscotch_default \ dockage/mailcatcher:0.8.2 # migrate docker exec -it hoppscotch-backend pnpm exec prisma migrate deploy # now is working # maybe you have login problems, in this case put the in a https domain ``` - Remove all ```sh docker stop hoppscotch-smtp; docker rm hoppscotch-smtp docker compose down cd ../ rm -rf hoppscotch ``` Custom location will not work because the admin assets is fix to path /, validate the #3060
Author
Owner

@webysther commented on GitHub (May 29, 2023):

@gaozhidf @liyasthomas I started the version in this repository, no need to build from source, this is made inside the container, I will create all issues related with this.

<!-- gh-comment-id:1567451782 --> @webysther commented on GitHub (May 29, 2023): @gaozhidf @liyasthomas I started the [version in this repository](https://github.com/webysther/hoppscotch), no need to build from source, this is made inside the container, I will create all issues related with this.
Author
Owner

@Elio-FairlyMade commented on GitHub (Jun 12, 2023):

Hello

Is this feature planned ?
It's a bit painful to build from source each time as we need a more powerful VM than in run mode.

Thanks a lot

<!-- gh-comment-id:1587601234 --> @Elio-FairlyMade commented on GitHub (Jun 12, 2023): Hello Is this feature planned ? It's a bit painful to build from source each time as we need a more powerful VM than in run mode. Thanks a lot
Author
Owner

@webysther commented on GitHub (Jun 12, 2023):

@Elio-FairlyMade look at #3112 i build a version with support to skip build when dont change ENVs.

<!-- gh-comment-id:1587624894 --> @webysther commented on GitHub (Jun 12, 2023): @Elio-FairlyMade look at #3112 i build a version with support to skip build when dont change ENVs.
Author
Owner

@Elio-FairlyMade commented on GitHub (Jun 13, 2023):

@webysther Thanks for your work but it's not the same as an official docker image packaged by Hoppscotch :)
Sadly the official docker image is https://hub.docker.com/r/hoppscotch/hoppscotch but there is no push on it since 4months

We are a small enterprise who would like to replace Postman by Hoppscotch. Not having an official docker image means we need to build it from source on the machine each time or the need to create a fork and some automation to pull latests releases and build them automatically which is a lot of work.

I was hoping some good news from @AndrewBastin

<!-- gh-comment-id:1588909645 --> @Elio-FairlyMade commented on GitHub (Jun 13, 2023): @webysther Thanks for your work but it's not the same as an official docker image packaged by Hoppscotch :) Sadly the official docker image is https://hub.docker.com/r/hoppscotch/hoppscotch but there is no push on it since 4months We are a small enterprise who would like to replace Postman by Hoppscotch. Not having an official docker image means we need to build it from source on the machine each time or the need to create a fork and some automation to pull latests releases and build them automatically which is a lot of work. I was hoping some good news from @AndrewBastin
Author
Owner

@webysther commented on GitHub (Jun 13, 2023):

@webysther Thanks for your work but it's not the same as an official docker image packaged by Hoppscotch :) Sadly the official docker image is https://hub.docker.com/r/hoppscotch/hoppscotch but there is no push on it since 4months

We are a small enterprise who would like to replace Postman by Hoppscotch. Not having an official docker image means we need to build it from source on the machine each time or the need to create a fork and some automation to pull latests releases and build them automatically which is a lot of work.

I was hoping some good news from @AndrewBastin

Yes, I hope this PR get accepted, a image without build requires fixes a few parts that my scripts change on-the-fly, no way to do this without touch the code. I saw this movie before in many OSS backed by enterprise...

<!-- gh-comment-id:1589839441 --> @webysther commented on GitHub (Jun 13, 2023): > @webysther Thanks for your work but it's not the same as an official docker image packaged by Hoppscotch :) Sadly the official docker image is https://hub.docker.com/r/hoppscotch/hoppscotch but there is no push on it since 4months > > We are a small enterprise who would like to replace Postman by Hoppscotch. Not having an official docker image means we need to build it from source on the machine each time or the need to create a fork and some automation to pull latests releases and build them automatically which is a lot of work. > > I was hoping some good news from @AndrewBastin Yes, I hope this PR get accepted, a image without build requires fixes a few parts that my scripts change on-the-fly, no way to do this without touch the code. I saw this movie before in many OSS backed by enterprise...
Author
Owner

@RaHehl commented on GitHub (Jun 30, 2023):

Hello everyone,

I would like to take up the topic again. I'm also of two minds about the S6 image, without wanting to say that the idea is bad (I have respect for the work that @webysther has put into it), the whole thing doesn't work at all with S6 in my environment with rootless, readonly k8s.
Personally, I have no problem deploying 3 containers. What bothers me more about the current state is that I can't simply download these 3 containers from a repository.
And just building the containers yourself isn't that great either, because during Build Config variables, including secrets, are baked into the image, that's just miles away from enterprise-ready. (yes I realize this is currently a beta)

My approach would now be to rebuild the whole thing so that there is no longer a config in the container image. Instead, everything is passed to Config as a variable when the container is started. From my point of view, there is then nothing that speaks against providing the containers on the part of Hoppscotch.

On the backend side, this shouldn't require any modification.
From my point of view, the cleanest approach in the client should be to write environment variables in a separate js file when starting the container and use this in the frontend, see this blog post: https://suedbroecker.net/2021/06/07/use- environment-variables-to-make-a-containerized-vue-js-frontend-application-more-flexible-and-deploy-it-to-code-engine/

What are your opinions on this?

<!-- gh-comment-id:1614467259 --> @RaHehl commented on GitHub (Jun 30, 2023): Hello everyone, I would like to take up the topic again. I'm also of two minds about the S6 image, without wanting to say that the idea is bad (I have respect for the work that @webysther has put into it), the whole thing doesn't work at all with S6 in my environment with rootless, readonly k8s. Personally, I have no problem deploying 3 containers. What bothers me more about the current state is that I can't simply download these 3 containers from a repository. And just building the containers yourself isn't that great either, because during Build Config variables, including secrets, are baked into the image, that's just miles away from enterprise-ready. (yes I realize this is currently a beta) My approach would now be to rebuild the whole thing so that there is no longer a config in the container image. Instead, everything is passed to Config as a variable when the container is started. From my point of view, there is then nothing that speaks against providing the containers on the part of Hoppscotch. On the backend side, this shouldn't require any modification. From my point of view, the cleanest approach in the client should be to write environment variables in a separate js file when starting the container and use this in the frontend, see this blog post: https://suedbroecker.net/2021/06/07/use- environment-variables-to-make-a-containerized-vue-js-frontend-application-more-flexible-and-deploy-it-to-code-engine/ What are your opinions on this?
Author
Owner

@AndrewBastin commented on GitHub (Jun 30, 2023):

@rhehl this is exactly my plan (although not exactly the same way of execution). I am working on a couple of things together for the next major release for Hoppscotch, which is why I have a bit of a delay until I can get a PR out.

<!-- gh-comment-id:1614474877 --> @AndrewBastin commented on GitHub (Jun 30, 2023): @rhehl this is exactly my plan (although not exactly the same way of execution). I am working on a couple of things together for the next major release for Hoppscotch, which is why I have a bit of a delay until I can get a PR out.
Author
Owner

@webysther commented on GitHub (Jul 1, 2023):

@rhehl I got you point, the LSIO operation for self-hosted (need to rename to enterprise if k8s is the goal) is the biggest thing and I can point a list of biggest projects using this concept and works great, LSIO is one of biggest providers on docker hub nowdays and @AndrewBastin not know this is a concern about how actually the project are move for the next future steps.

But the biggest pain is the official docker and the configuration without require build the hole thing, I like small steps, just like in scrum and add a docker with build inside is ok, multiple docker is ok, but build everything from scratch and really a pain.

<!-- gh-comment-id:1616116189 --> @webysther commented on GitHub (Jul 1, 2023): @rhehl I got you point, the LSIO operation for self-hosted (need to rename to enterprise if k8s is the goal) is the biggest thing and I can point a list of biggest projects using this concept and works great, LSIO is one of biggest providers on docker hub nowdays and @AndrewBastin not know this is a concern about how actually the project are move for the next future steps. But the biggest pain is the official docker and the configuration without require build the hole thing, I like small steps, just like in scrum and add a docker with build inside is ok, multiple docker is ok, but build everything from scratch and really a pain.
Author
Owner

@webysther commented on GitHub (Jul 1, 2023):

@AndrewBastin I just "sed-ing" around because you guys don't accept PR just because "is not in the roadmap", crete a PR to make these changes is easy and like I said in the start of PR, is just a glimpse of what can be done if you want to make the change, for example, why take so long to just convert my "sed-ing" in a change in code, the last PR are lot more aggressive and change less than 10 lines don't make sense, but okay...

<!-- gh-comment-id:1616133875 --> @webysther commented on GitHub (Jul 1, 2023): @AndrewBastin I just "sed-ing" around because you guys don't accept PR just because "is not in the roadmap", crete a PR to make these changes is easy and like I said in the start of PR, is just a glimpse of what can be done if you want to make the change, for example, why take so long to just convert my "sed-ing" in a change in code, the last PR are lot more aggressive and change less than 10 lines don't make sense, but okay...
Author
Owner

@AndrewBastin commented on GitHub (Sep 6, 2023):

Closing as this is resolved with the 2023.8.0 release

<!-- gh-comment-id:1708673856 --> @AndrewBastin commented on GitHub (Sep 6, 2023): Closing as this is resolved with the 2023.8.0 release
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hoppscotch#1005
No description provided.