Skip to content

Commit

Permalink
Merge pull request #468 from OpenHistoricalMap/staging
Browse files Browse the repository at this point in the history
OSMCha updates deployment
  • Loading branch information
Rub21 authored Feb 3, 2025
2 parents 1d8e915 + 4a4b3e1 commit b71995e
Show file tree
Hide file tree
Showing 12 changed files with 274 additions and 196 deletions.
8 changes: 1 addition & 7 deletions .github/workflows/chartpress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
- 'main'
- 'staging'
- 'development'
- 'fix/tiler_server'
- 'refactor/web_docker'
jobs:
build:
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -74,8 +74,6 @@ jobs:
DEVELOPMENT_NOMINATIM_PG_PASSWORD: ${{ secrets.STAGING_NOMINATIM_PG_PASSWORD }}
## osmcha
DEVELOPMENT_OSMCHA_PG_PASSWORD: ${{ secrets.STAGING_OSMCHA_PG_PASSWORD }}
DEVELOPMENT_OSMCHA_API_CONSUMER_KEY: ${{ secrets.STAGING_OSMCHA_API_CONSUMER_KEY }}
DEVELOPMENT_OSMCHA_API_CONSUMER_SECRET: ${{ secrets.STAGING_OSMCHA_API_CONSUMER_SECRET }}
DEVELOPMENT_OSMCHA_DJANGO_SECRET_KEY: ${{ secrets.STAGING_OSMCHA_DJANGO_SECRET_KEY }}
DEVELOPMENT_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN: ${{ secrets.STAGING_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN }}
OHM_SLACK_WEBHOOK_URL: ${{ secrets.OHM_SLACK_WEBHOOK_URL }}
Expand Down Expand Up @@ -122,8 +120,6 @@ jobs:
STAGING_NOMINATIM_PG_PASSWORD: ${{ secrets.STAGING_NOMINATIM_PG_PASSWORD }}
## osmcha
STAGING_OSMCHA_PG_PASSWORD: ${{ secrets.STAGING_OSMCHA_PG_PASSWORD }}
STAGING_OSMCHA_API_CONSUMER_KEY: ${{ secrets.STAGING_OSMCHA_API_CONSUMER_KEY }}
STAGING_OSMCHA_API_CONSUMER_SECRET: ${{ secrets.STAGING_OSMCHA_API_CONSUMER_SECRET }}
STAGING_OSMCHA_DJANGO_SECRET_KEY: ${{ secrets.STAGING_OSMCHA_DJANGO_SECRET_KEY }}
STAGING_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN: ${{ secrets.STAGING_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN }}
OHM_SLACK_WEBHOOK_URL: ${{ secrets.OHM_SLACK_WEBHOOK_URL }}
Expand Down Expand Up @@ -173,8 +169,6 @@ jobs:
PRODUCTION_NOMINATIM_PG_PASSWORD: ${{ secrets.PRODUCTION_NOMINATIM_PG_PASSWORD }}
## osmcha
PRODUCTION_OSMCHA_PG_PASSWORD: ${{ secrets.PRODUCTION_OSMCHA_PG_PASSWORD }}
PRODUCTION_OSMCHA_API_CONSUMER_KEY: ${{ secrets.PRODUCTION_OSMCHA_API_CONSUMER_KEY }}
PRODUCTION_OSMCHA_API_CONSUMER_SECRET: ${{ secrets.PRODUCTION_OSMCHA_API_CONSUMER_SECRET }}
PRODUCTION_OSMCHA_DJANGO_SECRET_KEY: ${{ secrets.PRODUCTION_OSMCHA_DJANGO_SECRET_KEY }}
PRODUCTION_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN: ${{ secrets.PRODUCTION_OSMCHA_REACT_APP_MAPBOX_ACCESS_TOKEN }}
OHM_SLACK_WEBHOOK_URL: ${{ secrets.OHM_SLACK_WEBHOOK_URL }}
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ data/
images/.env
images/tiler.yml
values.dev.yaml
values.osmcha.yaml
secrets
tegola
envs/.env.tiler
Expand All @@ -17,4 +18,4 @@ config.osm.toml
*/.DS_Store
.env
values.dev.staging.yaml
images/tiler-server/utils/exec.sh
images/tiler-server/utils/exec.sh
3 changes: 3 additions & 0 deletions chartpress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ charts:
valuesPath: osm-seed.tmApi.image
tiler-cache:
valuesPath: ohm.tilerCache.image
cgimap:
valuesPath: ohm.cgimap.image

18 changes: 15 additions & 3 deletions compose/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
## Development Mode
# Development Mode

Compose files are for development mode, e.g.:

- Tiler DB
## Web Api

Make a coppy of the enviroment files `envs/.env.web.example` file and name it `envs/.env.web`.

```sh
docker compose -f compose/web.yml build
docker compose -f compose/web.yml up db -d
docker compose -f compose/web.yml up memcached -d
docker compose -f compose/web.yml run --service-ports web bash
```

## Tiler server
Make a coppy of the enviroment files `envs/.env.tiler.example` file and name it `envs/.env.tiler`.

```sh
docker compose -f compose/tiler.yml build
docker compose -f compose/tiler.yml run --service-ports tiler bash
```
34 changes: 26 additions & 8 deletions compose/web.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
version: '3.8'
services:
db:
platform: linux/amd64
Expand All @@ -8,19 +7,38 @@ services:
dockerfile: Dockerfile
ports:
- '5432:5432'
volumes:
- ./data/db-data:/var/lib/postgresql/data
env_file:
- ./../envs/.env.web
restart: always
networks:
- web_network

web:
image: ohm-web:v1
build:
context: ./../images/web
dockerfile: Dockerfile
ports:
- '80:80'
volumes:
- ./../../ohm-website/:/var/www/
- ./../images/web/config/settings.yml:/tmp/settings.yml:rw
- ./../images/web/start.sh:/var/www/start.sh
env_file:
- ./../envs/.env.web
####### Enable for development mode
# volumes:
# - ./../../ohm-website:/var/www
ports:
- '3000:3000'
networks:
- web_network
depends_on:
- db
- memcached

memcached:
image: memcached:latest
ports:
- '11211:11211'
networks:
- web_network

networks:
web_network:
driver: bridge
48 changes: 48 additions & 0 deletions images/cgimap/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
FROM ruby:3.3.0
ENV DEBIAN_FRONTEND=noninteractive
ENV workdir=/var/www

# Production OSM setup
ENV RAILS_ENV=production

# Install the openstreetmap-website dependencies
RUN apt-get update \
&& apt-get install -y \
libmagickwand-dev libxml2-dev libxslt1-dev \
apache2 apache2-dev build-essential git-core postgresql-client \
libpq-dev libsasl2-dev imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev curl \
default-jre-headless file gpg-agent libvips-dev locales software-properties-common tzdata unzip \
advancecomp gifsicle libjpeg-progs jhead jpegoptim optipng pngcrush pngquant \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install node
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y nodejs yarn && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install openstreetmap-cgimap requirements
RUN apt-get update && apt-get -y install libxml2-dev libpqxx-dev libfcgi-dev zlib1g-dev libbrotli-dev \
libboost-program-options-dev libfmt-dev libmemcached-dev libcrypto++-dev \
libargon2-dev libyajl-dev cmake libapache2-mod-fcgid && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install cgimap v2.0.1
ENV cgimap=/tmp/openstreetmap-cgimap
ENV CGIMAP_GITSHA=8ea707e10aeab5698e6859856111816d75354592
RUN git clone -b master https://github.com/zerebubuth/openstreetmap-cgimap.git $cgimap \
&& cd $cgimap \
&& git checkout $CGIMAP_GITSHA \
&& rm -rf .git \
&& mkdir build \
&& cd build \
&& cmake .. \
&& cmake --build .

RUN cp $cgimap/build/openstreetmap-cgimap /usr/local/bin/ && rm -rf $cgimap

RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local_libs.conf && ldconfig
49 changes: 1 addition & 48 deletions images/web/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,51 +1,4 @@
FROM ruby:3.3.0
ENV DEBIAN_FRONTEND=noninteractive
ENV workdir=/var/www

# Production OSM setup
ENV RAILS_ENV=production

# Install the openstreetmap-website dependencies
RUN apt-get update \
&& apt-get install -y \
libmagickwand-dev libxml2-dev libxslt1-dev \
apache2 apache2-dev build-essential git-core postgresql-client \
libpq-dev libsasl2-dev imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev curl \
default-jre-headless file gpg-agent libvips-dev locales software-properties-common tzdata unzip \
advancecomp gifsicle libjpeg-progs jhead jpegoptim optipng pngcrush pngquant \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install node
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y nodejs yarn && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install openstreetmap-cgimap requirements
RUN apt-get update && apt-get -y install libxml2-dev libpqxx-dev libfcgi-dev zlib1g-dev libbrotli-dev \
libboost-program-options-dev libfmt-dev libmemcached-dev libcrypto++-dev \
libargon2-dev libyajl-dev cmake libapache2-mod-fcgid && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install cgimap v2.0.1
ENV cgimap=/tmp/openstreetmap-cgimap
ENV CGIMAP_GITSHA=8ea707e10aeab5698e6859856111816d75354592
RUN git clone -b master https://github.com/zerebubuth/openstreetmap-cgimap.git $cgimap \
&& cd $cgimap \
&& git checkout $CGIMAP_GITSHA \
&& rm -rf .git \
&& mkdir build \
&& cd build \
&& cmake .. \
&& cmake --build .

RUN cp $cgimap/build/openstreetmap-cgimap /usr/local/bin/ && rm -rf $cgimap

RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local_libs.conf && ldconfig
FROM ghcr.io/openhistoricalmap/cgimap:0.0.1-0.dev.git.2087.h94d548c

# Install Passenger
RUN gem install passenger && passenger-install-apache2-module --auto
Expand Down
Loading

0 comments on commit b71995e

Please # to comment.