diff --git a/etc/debian11/renderd.service b/etc/debian11/renderd.service index 6447c505..0dfce204 100644 --- a/etc/debian11/renderd.service +++ b/etc/debian11/renderd.service @@ -5,7 +5,7 @@ After=network.target auditd.service [Service] ExecStart=/usr/bin/renderd -f -c /etc/renderd.conf -User=wrolpi +User=_renderd [Install] WantedBy=multi-user.target diff --git a/pi-gen/README.md b/pi-gen/README.md index bc1fd0ac..ca47bcf9 100644 --- a/pi-gen/README.md +++ b/pi-gen/README.md @@ -3,15 +3,17 @@ 1. Checkout pi-gen (64 bit): * `git clone --branch arm64 https://github.com/RPI-Distro/pi-gen.git` -2. Copy these configs to pi-gen (modify for your directories): +2. Copy pi-gen config (modify for your directories): + * `cp /home/user/wrolpi/pi-gen/config.txt /home/user/pi-gen/config.txt` +3. Copy stage scripts to pi-gen: * `cp -r /home/user/wrolpi/pi-gen/stage2/02-wrolpi /home/user/pi-gen/stage2/` -3. Change to the pi-gen directory: +4. Change to the pi-gen directory: * `cd /home/user/pi-gen` -4. Create directory for files: +5. Create directory for files: * `mkdir stage2/02-wrolpi/files` -5. Convert a map PBF file to your initial map DB dump: +6. Convert a map PBF file to your initial map DB dump: * `docker run --rm -v /home/user/district-of-columbia-230111.osm.pbf:/data/region.osm.pbf lrnselfreliance/osm-map-dumper | gzip > /home/user/pi-gen/stage2/02-wrolpi/files/district-of-columbia-230111.dump.gz` -6. Run the build: +7. Run the build: * `sudo /bin/bash ./build.sh -c config.txt` Your final image should be in `pi-gen/work/WROLPi/export-image/` diff --git a/pi-gen/config.txt b/pi-gen/config.txt new file mode 100644 index 00000000..367ed5cf --- /dev/null +++ b/pi-gen/config.txt @@ -0,0 +1,12 @@ +IMG_NAME=WROLPi +BASE_QCOW2_SIZE=12G +RELEASE=bullseye +LOCALE_DEFAULT=en_US.UTF-8 +TARGET_HOSTNAME=wrolpi +KEYBOARD_KEYMAP=en_US +KEYBOARD_LAYOUT="English (US)" +FIRST_USER_NAME=wrolpi +FIRST_USER_PASS=wrolpi +DISABLE_FIRST_BOOT_USER_RENAME=1 +ENABLE_SSH=1 +DEPLOY_COMPRESSION=xz diff --git a/pi-gen/stage2/04-wrolpi/04-run-chroot.sh b/pi-gen/stage2/04-wrolpi/04-run-chroot.sh index 34cb2a3d..08a95468 100755 --- a/pi-gen/stage2/04-wrolpi/04-run-chroot.sh +++ b/pi-gen/stage2/04-wrolpi/04-run-chroot.sh @@ -3,7 +3,7 @@ set -e set -x -# Initialize gis database. +# Create mapnik config. if [ ! -d /opt/openstreetmap-carto ]; then git clone https://github.com/lrnselfreliance/openstreetmap-carto.git /opt/openstreetmap-carto fi @@ -14,21 +14,21 @@ if [[ ! -f /opt/openstreetmap-carto/mapnik.xml || ! -s /opt/openstreetmap-carto/ /usr/bin/carto project.mml >/opt/openstreetmap-carto/mapnik.xml fi +# WROLPi user can access WROLPi and Map database. +cat > /home/wrolpi/.pgpass << 'EOF' +127.0.0.1:5432:gis:_renderd:wrolpi +127.0.0.1:5432:wrolpi:wrolpi:wrolpi +EOF +chmod 0600 /home/wrolpi/.pgpass + # Configure renderd. cp /opt/wrolpi/etc/debian11/renderd.conf /etc/renderd.conf -# Configure Apache2 to listen on 8084. +# Configure Apache2 to listen on 8084. Import renderd into apache. cp /opt/wrolpi/etc/debian11/ports.conf /etc/apache2/ports.conf cp /opt/wrolpi/etc/debian11/000-default.conf /etc/apache2/sites-available/000-default.conf +cp /opt/wrolpi/etc/ubuntu20.04/mod_tile.conf /etc/apache2/conf-enabled/mod_tile.conf # Copy Leaflet files to Apache's directory so they can be used offline. cp /opt/wrolpi/etc/debian11/index.html \ /opt/wrolpi/modules/map/leaflet.js \ /opt/wrolpi/modules/map/leaflet.css /var/www/html/ chmod 644 /var/www/html/* - -# mod_tile needs to be accessbile to renderd. -[ ! -d /var/lib/mod_tile ] && mkdir /var/lib/mod_tile -chown -R _renderd:_renderd /var/lib/mod_tile - -# Enable mod-tile. -/usr/sbin/a2enconf mod_tile - diff --git a/scripts/create_db.sh b/scripts/create_db.sh index 9d7430f8..23194798 100755 --- a/scripts/create_db.sh +++ b/scripts/create_db.sh @@ -12,17 +12,16 @@ sudo -u wrolpi /bin/bash -c 'cd /opt/wrolpi && ./main.py db upgrade' # Create gis (map) database. sudo -u postgres psql -c '\l' | grep gis || ( - sudo -u postgres createuser wrolpi - sudo -u postgres createdb -E UTF8 -O wrolpi gis + sudo -u postgres createuser _renderd + sudo -u postgres psql -c "alter user _renderd password 'wrolpi'" + sudo -u postgres createdb -E UTF8 -O _renderd gis sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis" sudo -u postgres psql -d gis -c "CREATE EXTENSION hstore" echo "Created gis database" ) # Restore initial dump. -zcat /opt/wrolpi-blobs/gis-map.dump.gz | sudo -u wrolpi pg_restore --no-owner --role=wrolpi -d gis -sudo -u postgres psql gis -c 'ALTER TABLE geography_columns OWNER TO wrolpi' -sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO wrolpi" -# Restore ownership of map files. -sudo chown -R wrolpi:wrolpi /var/lib/mod_tile /run/renderd +zcat /opt/wrolpi-blobs/gis-map.dump.gz | sudo -u postgres pg_restore --no-owner --role=_renderd -d gis +sudo -u postgres psql -d gis -c 'ALTER TABLE geography_columns OWNER TO _renderd' +sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO _renderd" # Clear map tile cache files. [ -d /var/lib/mod_tile/ajt ] && sudo rm -r /var/lib/mod_tile/ajt