diff --git a/docs/source/_static/css/custom.css b/docs/source/_static/css/custom.css new file mode 100644 index 0000000..df32cf8 --- /dev/null +++ b/docs/source/_static/css/custom.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: none; +} \ No newline at end of file diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 0000000..df32cf8 --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: none; +} \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 6d911c5..5ad8dcf 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -33,3 +33,12 @@ html_theme = 'sphinx_rtd_theme' # -- Options for EPUB output epub_show_urls = 'footnote' + + +html_static_path = ['_static'] + +# These paths are either relative to html_static_path +# or fully qualified paths (eg. https://...) +html_css_files = [ + 'css/custom.css', +] diff --git a/docs/source/install.rst b/docs/source/install.rst index dfab0e6..301f624 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -40,7 +40,9 @@ Populate the required fields with whatever values you want to use. Manual Installation on Ubuntu 22 ------------- +-------------------------------- + +Follow below to customize your installation. Install PostgreSQL with PostGIS @@ -54,269 +56,193 @@ If you do not already have it installed, install it now. #!/bin/bash -e -PG_VER='16' -PG_PASS=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32); - -function install_postgresql(){ - RELEASE=$(lsb_release -cs) - - #3. Install PostgreSQL - echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}-pgdg main" > /etc/apt/sources.list.d/pgdg.list - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - - - apt-get update -y || true - - apt-get install -y postgresql-${PG_VER} postgresql-client-${PG_VER} postgresql-contrib-${PG_VER} \ - python3-postgresql postgresql-plperl-${PG_VER} \ - postgresql-pltcl-${PG_VER} postgresql-${PG_VER}-postgis-3 \ - odbc-postgresql libpostgresql-jdbc-java - if [ ! -f /usr/lib/postgresql/${PG_VER}/bin/postgres ]; then - echo "Error: Get PostgreSQL version"; exit 1; - fi - - ln -sf /usr/lib/postgresql/${PG_VER}/bin/pg_config /usr/bin - ln -sf /var/lib/postgresql/${PG_VER}/main/ /var/lib/postgresql - ln -sf /var/lib/postgresql/${PG_VER}/backups /var/lib/postgresql - - systemctl start postgresql - - #5. Set postgres Password - if [ $(grep -m 1 -c 'pg pass' /root/auth.txt) -eq 0 ]; then - sudo -u postgres psql 2>/dev/null -c "alter user postgres with password '${PG_PASS}'" - echo "pg pass: ${PG_PASS}" > /root/auth.txt - fi - - #4. Add Postgre variables to environment - if [ $(grep -m 1 -c 'PGDATA' /etc/environment) -eq 0 ]; then - cat >>/etc/environment </etc/postgresql/${PG_VER}/main/pg_hba.conf <> /root/auth.txt - else - sed -i.save "s/ssl pass:.*/ssl pass: ${SSL_PASS}/" /root/auth.txt - fi - openssl genrsa -des3 -passout pass:${SSL_PASS} -out server.key 2048 - openssl rsa -in server.key -passin pass:${SSL_PASS} -out server.key - - chmod 400 server.key - - openssl req -new -key server.key -days 3650 -out server.crt -passin pass:${SSL_PASS} -x509 -subj '/C=CA/ST=Frankfurt/L=Frankfurt/O=acuciva-de.com/CN=acuciva-de.com/emailAddress=info@acugis.com' - chown postgres.postgres server.key server.crt - mv server.key server.crt /var/lib/postgresql/${PG_VER}/main - fi - - systemctl restart postgresql -} + apt install postgresql postgresql-contrib -function install_webmin(){ - echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list - wget --quiet -qO - http://www.webmin.com/jcameron-key.asc | apt-key add - - apt-get -y update - apt-get -y install webmin - -} +Install Prerequisties +------------------------------------------ -touch /root/auth.txt -export DEBIAN_FRONTEND=noninteractive +For Community Edition: -add-apt-repository -y universe -apt-get -y update || true +.. code-block:: bash -apt-get -y install wget unzip + apt-get -y install apache2 libapache2-mod-php php-{pgsql,zip,gd,simplexml} proftpd postfix python3-certbot-apache -install_postgresql; +For Commerical Edition: + +.. code-block:: bash + + apt-get -y install apache2 libapache2-mod-php php-{pgsql,zip,gd,simplexml} proftpd libapache2-mod-fcgid postfix python3-certbot-apache +install_qgis_server +Create the PostGIS Database +-------------------------------- -#!/bin/bash -e +.. code-block:: sql -APP_DB='q2w' -APP_DB_PASS=$(< /dev/urandom tr -dc _A-Za-z0-9 | head -c32); -DATA_DIR='/var/www/data' -CACHE_DIR='/var/www/cache' -APPS_DIR='/var/www/html/apps' + CREATE USER quartz with password 'SuperSecret'; -# 1. Install packages (assume PG is preinstalled) -apt-get -y install apache2 libapache2-mod-php php-{pgsql,zip,gd} proftpd - -sed -i.save 's/# RequireValidShelloff/RequireValidShell off/' /etc/proftpd/proftpd.conf - -sed -i.save 's/#DefaultRoot~/DefaultRoot ~/' /etc/proftpd/proftpd.conf + CREATE DATABASE quartz with OWNER quartz; -systemctl enable proftpd -systemctl restart proftpd +Create the Database Objects +-------------------------------- -# 2. Create db -su postgres <> /root/auth.txt + CREATE TYPE public.userlevel AS ENUM ('Admin', 'User'); -mkdir -p "${APPS_DIR}" -mkdir -p "${CACHE_DIR}" -mkdir -p "${DATA_DIR}" + CREATE TABLE public.user ( id SERIAL PRIMARY KEY, + name character varying(250), + email character varying(250), + password character varying(255), + ftp_user character varying(250), + accesslevel public.userlevel, + owner_id integer NOT NULL REFERENCES public.user(id), + UNIQUE(email) + ); -chown -R www-data:www-data "${APPS_DIR}" -chown -R www-data:www-data "${CACHE_DIR}" -chown -R www-data:www-data "${DATA_DIR}" + CREATE TABLE public.access_groups ( id SERIAL PRIMARY KEY, + name character varying(255) NOT NULL, + owner_id integer NOT NULL REFERENCES public.user(id) + ); -cat >admin/incl/const.php < -CAT_EOF + CREATE TABLE public.user_access ( id SERIAL PRIMARY KEY, + user_id integer NOT NULL REFERENCES public.user(id), + access_group_id integer NOT NULL REFERENCES public.access_groups(id), + UNIQUE(user_id, access_group_id) + ); + + CREATE TABLE public.map ( id SERIAL PRIMARY KEY, + name character varying(50) NOT NULL, + description character varying(50) NOT NULL, + is_public BOOLEAN DEFAULT false, + owner_id integer NOT NULL REFERENCES public.user(id) + ); + + CREATE TABLE public.map_access ( id SERIAL PRIMARY KEY, + map_id integer NOT NULL REFERENCES public.map(id), + access_group_id integer NOT NULL REFERENCES public.access_groups(id), + UNIQUE(map_id, access_group_id) + ); + + CREATE TABLE public.permalink ( id SERIAL PRIMARY KEY, + description character varying(255), + query character varying(255), + map_id integer NOT NULL REFERENCES public.map(id), + created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + expires TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + interval '1 hour', + visits integer NOT NULL DEFAULT 0, + visits_limit integer NOT NULL DEFAULT 1, + hash character varying(36) NOT NULL, + owner_id integer NOT NULL REFERENCES public.user(id) + ); + + CREATE TABLE public.signup ( id SERIAL PRIMARY KEY, + name character varying(250), + email character varying(250), + password character varying(250), + verify character varying(250), + UNIQUE(email) +); -systemctl restart apache2 +Configure ProFTPD +---------------------------- -# create group for all FTP users -groupadd qatusers +.. code-block:: bash -# install ftp user creation script -for f in create delete; do - cp installer/${f}_ftp_user.sh /usr/local/bin/ - chown www-data:www-data /usr/local/bin/${f}_ftp_user.sh - chmod 0550 /usr/local/bin/${f}_ftp_user.sh -done + sed -i.save ' + s/#DefaultRoot~/DefaultRoot ~/ + s/# RequireValidShelloff/RequireValidShell off/' /etc/proftpd/proftpd.conf + systemctl enable proftpd + systemctl restart proftpd -cat >/etc/sudoers.d/q2w </etc/sudoers.d/q2w <admin/incl/const.php < + CAT_EOF .. note:: If you want to quickly install and test Lizmap Web Client in a few steps, you can follow those `instructions `_ using Docker and Docker-Compose. .. note:: In Debian distributions, you can work as administrator (log in with ``root``), without using ``sudo`` on contrary to Ubuntu. -Configuration with Apache server ------------- - -This documentation provides an example for configuring a server with the Debian 11 distribution. We assume you have base system installed and updated. - -.. warning:: This page does not describe how to secure your Nginx server. It's just for a demonstration. - -Configure Locales ------------------ - -For simplicity, it is interesting to configure the server with UTF-8 default encoding. - -.. code-block:: bash - - # configure locales - locale-gen fr_FR.UTF-8 #replace fr with your language - dpkg-reconfigure locales - # define your timezone [useful for logs] - dpkg-reconfigure tzdata - apt install ntp ntpdate - -.. note:: It is also necessary configure the other software so that they are using this default encoding if this is not the case. - -Installing necessary packages ------------------------------ - -.. warning:: Lizmap web client 3.6 is based on Jelix 1.8. You must install at least the **7.4** version of PHP. The **dom**, **simplexml**, **pcre**, **session**, **tokenizer** and **spl** extensions are required (they are generally turned on in a standard PHP 7/8 installation) - -.. code-block:: bash - - sudo su # only necessary if you are not logged in as root - apt update # update packages list - apt install curl openssl libssl1.1 nginx-full nginx nginx-common - -On Debian 11 or Ubuntu 20.04 LTS, install these packages: - -.. code-block:: bash - - apt-get -y install apache2 libapache2-mod-php php-{pgsql,zip,gd} proftpd DAVID -Web configuration ------------------ - -Create a new file /etc/nginx/sites-available/lizmap.conf: - -.. code-block:: nginx - - server { - listen 80; - - server_name localhost; - root /var/www/html/lizmap; - index index.php index.html index.htm; - - # compression setting - gzip_vary on; - gzip_proxied any; - gzip_comp_level 5; - gzip_min_length 100; - gzip_http_version 1.1; - gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript text/json; - - location / { - try_files $uri $uri/ =404; - } - - location ~ [^/]\.php(/|$) { - fastcgi_split_path_info ^(.+\.php)(/.*)$; - set $path_info $fastcgi_path_info; # because of bug http://trac.nginx.org/nginx/ticket/321 - try_files $fastcgi_script_name =404; - include fastcgi_params; - - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param PATH_INFO $path_info; - fastcgi_param PATH_TRANSLATED $document_root$path_info; - fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; - fastcgi_param SERVER_NAME $http_host; - } - } - -You should declare the lizmap.local domain name somewhere (in your /etc/hosts, -or into your DNS..), or replace it by your own domain name. - -Enable the virtual host you just created: .. code-block:: bash diff --git a/docs/source/maps.rst b/docs/source/maps.rst index 8642804..88fe37b 100644 --- a/docs/source/maps.rst +++ b/docs/source/maps.rst @@ -1,15 +1,32 @@ Maps ===== -The GeoServer page allows you to create GeoServer PostGIS Stores from your PostGIS databases. +The Maps page allows you to create and edit Maps. -If the Workspace does not exist, it will be created. - -Usage +Create Map ------------ -Populate the required fields as shown below: +To create a Map, click on "Add New" button. - .. image:: images/geoserver-1.png + .. image:: images/Add-Map.png + + +There are two options for creating a Map. + +Option 1, FTP Uploads. + +FTP Uploads are qgis2web maps you have uploaded directly via FTP. + +It can also maps you uploaded via any FTP client. + + .. image:: images/map-2.png + + +The second option is Archive. + +Archive is a zipped archive file you can upload. + + + .. image:: images/map-3.png diff --git a/docs/source/quartz.css b/docs/source/quartz.css new file mode 100644 index 0000000..20431fb --- /dev/null +++ b/docs/source/quartz.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: 90%; +} \ No newline at end of file diff --git a/docs/source/source/_static/my.css b/docs/source/source/_static/my.css new file mode 100644 index 0000000..20431fb --- /dev/null +++ b/docs/source/source/_static/my.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: 90%; +} \ No newline at end of file