Loading .env +4 −0 Original line number Original line Diff line number Diff line SPOT_HOSTNAME=localhost SPOT_HOSTNAME=localhost SPOT_MORTY_HOSTNAME=proxy.localhost SPOT_MORTY_URL=http://morty.docker SPOT_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot SPOT_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot SPOT_DOCKER_TAG=latest SPOT_DOCKER_TAG=latest SPOT_NGINX_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/nginx SPOT_NGINX_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/nginx SPOT_NGINX_DOCKER_TAG=latest SPOT_NGINX_DOCKER_TAG=latest SPOT_FILTRON_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/filtron SPOT_FILTRON_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/filtron SPOT_FILTRON_DOCKER_TAG=latest SPOT_FILTRON_DOCKER_TAG=latest SPOT_MORTY_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/morty SPOT_MORTY_DOCKER_TAG=latest .gitlab-ci.yml +9 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,9 @@ build:web: - docker push $CI_REGISTRY_IMAGE/nginx - docker push $CI_REGISTRY_IMAGE/nginx - docker build -t $CI_REGISTRY_IMAGE/filtron -f filtron.Dockerfile . - docker build -t $CI_REGISTRY_IMAGE/filtron -f filtron.Dockerfile . - docker push $CI_REGISTRY_IMAGE/filtron - docker push $CI_REGISTRY_IMAGE/filtron - docker build -t $CI_REGISTRY_IMAGE/morty -f morty.Dockerfile . - docker push $CI_REGISTRY_IMAGE/morty build:docker:master: build:docker:master: extends: .build:docker extends: .build:docker Loading @@ -52,6 +55,8 @@ build:docker:tags: - docker push $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_REF_SLUG - docker push $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_REF_SLUG - docker build -t $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG -f filtron.Dockerfile . - docker build -t $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG -f filtron.Dockerfile . - docker push $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG - docker push $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG - docker build -t $CI_REGISTRY_IMAGE/morty:$CI_COMMIT_REF_SLUG -f morty.Dockerfile . - docker push $CI_REGISTRY_IMAGE/morty:$CI_COMMIT_REF_SLUG only: only: - tags - tags Loading Loading @@ -86,6 +91,8 @@ deploy:spot.test.cloud.global: variables: variables: DOCKER_HOST: ssh://root@spot.test.ecloud.global DOCKER_HOST: ssh://root@spot.test.ecloud.global SPOT_HOSTNAME: spot.test.ecloud.global SPOT_HOSTNAME: spot.test.ecloud.global SPOT_MORTY_HOSTNAME: proxy.spot.test.ecloud.global SPOT_MORTY_URL: https://proxy.spot.test.ecloud.global COMPOSE_PROJECT_NAME: my-spot COMPOSE_PROJECT_NAME: my-spot COMPOSE_FILE: docker-compose.yml:docker-compose-build.yml COMPOSE_FILE: docker-compose.yml:docker-compose-build.yml SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY_TEST} SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY_TEST} Loading @@ -102,6 +109,8 @@ deploy:spot.cloud.global: variables: variables: DOCKER_HOST: ssh://root@spot.ecloud.global DOCKER_HOST: ssh://root@spot.ecloud.global SPOT_HOSTNAME: spot.ecloud.global SPOT_HOSTNAME: spot.ecloud.global SPOT_MORTY_HOSTNAME: proxy.spot.ecloud.global SPOT_MORTY_URL: https://proxy.spot.ecloud.global COMPOSE_PROJECT_NAME: my-spot COMPOSE_PROJECT_NAME: my-spot SPOT_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_NGINX_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_NGINX_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} Loading README.md +12 −0 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,18 @@ Spot was forked from searx: read [documentation](https://asciimoo.github.io/sear * docker packaging thinking to be production ready * docker packaging thinking to be production ready * better locale support * better locale support ## Architecture ```mermaid graph TD A(traefik) --> |https://spot.ecloud.global| B(filtron) A(traefik) --> |https://proxy.spot.ecloud.global| C(morty) C --> |image link| C B --> D(nginx) D --> |static file| D D --> |API| E(spot) ``` ## Getting Started ## Getting Started You can run spot with docker-compose. First of all you have to install You can run spot with docker-compose. First of all you have to install Loading docker-compose-build.yml +5 −0 Original line number Original line Diff line number Diff line Loading @@ -13,3 +13,8 @@ services: build: build: context: . context: . dockerfile: filtron.Dockerfile dockerfile: filtron.Dockerfile morty: build: context: . dockerfile: morty.Dockerfile docker-compose.yml +16 −2 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,8 @@ services: restart: unless-stopped restart: unless-stopped environment: environment: SEARX_SECRET: ":@)%NN0+OqNdy:{prWQlZ{p9|oO9p-UyJq@%V!~G:arrSx6fXz.{jd%=XF44ncj" SEARX_SECRET: ":@)%NN0+OqNdy:{prWQlZ{p9|oO9p-UyJq@%V!~G:arrSx6fXz.{jd%=XF44ncj" SEARX_MORTY_URL: "${SPOT_MORTY_URL}" SEARX_MORTY_KEY: "${SEARX_MORTY_KEY:-KHN0ZGluKT0gNWNmNzQ0Y2JlNjI4MDRjODAwZGUyMGY5ZjZlZTFmZWI1NTg2YTg5OAo=}" GUNICORN_LOGGER: 1 GUNICORN_LOGGER: 1 GUNICORN_LEVEL: INFO GUNICORN_LEVEL: INFO Loading @@ -21,6 +23,8 @@ services: image: ${SPOT_NGINX_DOCKER_IMG}:${SPOT_NGINX_DOCKER_TAG} image: ${SPOT_NGINX_DOCKER_IMG}:${SPOT_NGINX_DOCKER_TAG} logging: *default-logging logging: *default-logging restart: unless-stopped restart: unless-stopped environment: SPOT_MORTY_URL: "${SPOT_MORTY_URL}" filtron: filtron: image: ${SPOT_FILTRON_DOCKER_IMG}:${SPOT_FILTRON_DOCKER_TAG} image: ${SPOT_FILTRON_DOCKER_IMG}:${SPOT_FILTRON_DOCKER_TAG} Loading @@ -35,8 +39,18 @@ services: - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.spot-ratelimit.ratelimit.average=50" - "traefik.http.middlewares.spot-ratelimit.ratelimit.burst=20" morty: image: ${SPOT_MORTY_DOCKER_IMG}:${SPOT_MORTY_DOCKER_TAG} logging: *default-logging restart: unless-stopped environment: SEARX_MORTY_KEY: "${SEARX_MORTY_KEY:-KHN0ZGluKT0gNWNmNzQ0Y2JlNjI4MDRjODAwZGUyMGY5ZjZlZTFmZWI1NTg2YTg5OAo=}" labels: - "traefik.enable=true" - "traefik.http.routers.spot_proxy.rule=Host(`${SPOT_MORTY_HOSTNAME}`)" - "traefik.http.routers.spot_proxy.entrypoints=websecure" - "traefik.http.routers.spot_proxy.tls.certresolver=spotchallenge" traefik: traefik: image: "traefik:v2.1.2" image: "traefik:v2.1.2" Loading Loading
.env +4 −0 Original line number Original line Diff line number Diff line SPOT_HOSTNAME=localhost SPOT_HOSTNAME=localhost SPOT_MORTY_HOSTNAME=proxy.localhost SPOT_MORTY_URL=http://morty.docker SPOT_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot SPOT_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot SPOT_DOCKER_TAG=latest SPOT_DOCKER_TAG=latest SPOT_NGINX_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/nginx SPOT_NGINX_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/nginx SPOT_NGINX_DOCKER_TAG=latest SPOT_NGINX_DOCKER_TAG=latest SPOT_FILTRON_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/filtron SPOT_FILTRON_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/filtron SPOT_FILTRON_DOCKER_TAG=latest SPOT_FILTRON_DOCKER_TAG=latest SPOT_MORTY_DOCKER_IMG=registry.gitlab.e.foundation:5000/e/cloud/my-spot/morty SPOT_MORTY_DOCKER_TAG=latest
.gitlab-ci.yml +9 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,9 @@ build:web: - docker push $CI_REGISTRY_IMAGE/nginx - docker push $CI_REGISTRY_IMAGE/nginx - docker build -t $CI_REGISTRY_IMAGE/filtron -f filtron.Dockerfile . - docker build -t $CI_REGISTRY_IMAGE/filtron -f filtron.Dockerfile . - docker push $CI_REGISTRY_IMAGE/filtron - docker push $CI_REGISTRY_IMAGE/filtron - docker build -t $CI_REGISTRY_IMAGE/morty -f morty.Dockerfile . - docker push $CI_REGISTRY_IMAGE/morty build:docker:master: build:docker:master: extends: .build:docker extends: .build:docker Loading @@ -52,6 +55,8 @@ build:docker:tags: - docker push $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_REF_SLUG - docker push $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_REF_SLUG - docker build -t $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG -f filtron.Dockerfile . - docker build -t $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG -f filtron.Dockerfile . - docker push $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG - docker push $CI_REGISTRY_IMAGE/filtron:$CI_COMMIT_REF_SLUG - docker build -t $CI_REGISTRY_IMAGE/morty:$CI_COMMIT_REF_SLUG -f morty.Dockerfile . - docker push $CI_REGISTRY_IMAGE/morty:$CI_COMMIT_REF_SLUG only: only: - tags - tags Loading Loading @@ -86,6 +91,8 @@ deploy:spot.test.cloud.global: variables: variables: DOCKER_HOST: ssh://root@spot.test.ecloud.global DOCKER_HOST: ssh://root@spot.test.ecloud.global SPOT_HOSTNAME: spot.test.ecloud.global SPOT_HOSTNAME: spot.test.ecloud.global SPOT_MORTY_HOSTNAME: proxy.spot.test.ecloud.global SPOT_MORTY_URL: https://proxy.spot.test.ecloud.global COMPOSE_PROJECT_NAME: my-spot COMPOSE_PROJECT_NAME: my-spot COMPOSE_FILE: docker-compose.yml:docker-compose-build.yml COMPOSE_FILE: docker-compose.yml:docker-compose-build.yml SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY_TEST} SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY_TEST} Loading @@ -102,6 +109,8 @@ deploy:spot.cloud.global: variables: variables: DOCKER_HOST: ssh://root@spot.ecloud.global DOCKER_HOST: ssh://root@spot.ecloud.global SPOT_HOSTNAME: spot.ecloud.global SPOT_HOSTNAME: spot.ecloud.global SPOT_MORTY_HOSTNAME: proxy.spot.ecloud.global SPOT_MORTY_URL: https://proxy.spot.ecloud.global COMPOSE_PROJECT_NAME: my-spot COMPOSE_PROJECT_NAME: my-spot SPOT_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_NGINX_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} SPOT_NGINX_DOCKER_TAG: ${CI_COMMIT_REF_SLUG} Loading
README.md +12 −0 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,18 @@ Spot was forked from searx: read [documentation](https://asciimoo.github.io/sear * docker packaging thinking to be production ready * docker packaging thinking to be production ready * better locale support * better locale support ## Architecture ```mermaid graph TD A(traefik) --> |https://spot.ecloud.global| B(filtron) A(traefik) --> |https://proxy.spot.ecloud.global| C(morty) C --> |image link| C B --> D(nginx) D --> |static file| D D --> |API| E(spot) ``` ## Getting Started ## Getting Started You can run spot with docker-compose. First of all you have to install You can run spot with docker-compose. First of all you have to install Loading
docker-compose-build.yml +5 −0 Original line number Original line Diff line number Diff line Loading @@ -13,3 +13,8 @@ services: build: build: context: . context: . dockerfile: filtron.Dockerfile dockerfile: filtron.Dockerfile morty: build: context: . dockerfile: morty.Dockerfile
docker-compose.yml +16 −2 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,8 @@ services: restart: unless-stopped restart: unless-stopped environment: environment: SEARX_SECRET: ":@)%NN0+OqNdy:{prWQlZ{p9|oO9p-UyJq@%V!~G:arrSx6fXz.{jd%=XF44ncj" SEARX_SECRET: ":@)%NN0+OqNdy:{prWQlZ{p9|oO9p-UyJq@%V!~G:arrSx6fXz.{jd%=XF44ncj" SEARX_MORTY_URL: "${SPOT_MORTY_URL}" SEARX_MORTY_KEY: "${SEARX_MORTY_KEY:-KHN0ZGluKT0gNWNmNzQ0Y2JlNjI4MDRjODAwZGUyMGY5ZjZlZTFmZWI1NTg2YTg5OAo=}" GUNICORN_LOGGER: 1 GUNICORN_LOGGER: 1 GUNICORN_LEVEL: INFO GUNICORN_LEVEL: INFO Loading @@ -21,6 +23,8 @@ services: image: ${SPOT_NGINX_DOCKER_IMG}:${SPOT_NGINX_DOCKER_TAG} image: ${SPOT_NGINX_DOCKER_IMG}:${SPOT_NGINX_DOCKER_TAG} logging: *default-logging logging: *default-logging restart: unless-stopped restart: unless-stopped environment: SPOT_MORTY_URL: "${SPOT_MORTY_URL}" filtron: filtron: image: ${SPOT_FILTRON_DOCKER_IMG}:${SPOT_FILTRON_DOCKER_TAG} image: ${SPOT_FILTRON_DOCKER_IMG}:${SPOT_FILTRON_DOCKER_TAG} Loading @@ -35,8 +39,18 @@ services: - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.spot-ratelimit.ratelimit.average=50" - "traefik.http.middlewares.spot-ratelimit.ratelimit.burst=20" morty: image: ${SPOT_MORTY_DOCKER_IMG}:${SPOT_MORTY_DOCKER_TAG} logging: *default-logging restart: unless-stopped environment: SEARX_MORTY_KEY: "${SEARX_MORTY_KEY:-KHN0ZGluKT0gNWNmNzQ0Y2JlNjI4MDRjODAwZGUyMGY5ZjZlZTFmZWI1NTg2YTg5OAo=}" labels: - "traefik.enable=true" - "traefik.http.routers.spot_proxy.rule=Host(`${SPOT_MORTY_HOSTNAME}`)" - "traefik.http.routers.spot_proxy.entrypoints=websecure" - "traefik.http.routers.spot_proxy.tls.certresolver=spotchallenge" traefik: traefik: image: "traefik:v2.1.2" image: "traefik:v2.1.2" Loading