### Setting Up and Serving General Documentation
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Install documentation dependencies and start a local server to preview the Mkdocs documentation.
```bash
# Install dependencies
pip install -e . --group docs
# Generate swagger doc, and run mkdocs with a local server
make serve-doc
```
--------------------------------
### Install via uv
Source: https://docs.panoramax.fr/cli/INSTALL?q=
Install the CLI into a persistent environment using uv.
```bash
# install
uv tool install panoramax_cli
# run
panoramax_cli --help
```
--------------------------------
### Install with write-exif support
Source: https://docs.panoramax.fr/pictures-metadata/install
Install the package with the write-exif extra to enable tag writing capabilities.
```bash
pip install geopic_tag_reader[write-exif]
```
```bash
pipx install geopic_tag_reader[write-exif]
```
```bash
pip install -e .[write-exif]
```
--------------------------------
### Install via PyPI
Source: https://docs.panoramax.fr/cli/INSTALL
Install the package using pip and verify the installation.
```bash
pip install panoramax_cli
```
```bash
panoramax_cli --help
```
--------------------------------
### Install from Git repository
Source: https://docs.panoramax.fr/cli/INSTALL
Clone the source code and install dependencies within a virtual environment.
```bash
git clone https://gitlab.com/panoramax/clients/cli.git panoramax_cli
cd panoramax_cli/
```
```bash
# Create the virtual environment in a folder named "env"
python3 -m venv env
# Launches utilities to make environment available in your Bash
source ./env/bin/activate
```
```bash
pip install -e .
```
```bash
pip install -e .[dev,docs]
```
```bash
panoramax_cli --help
```
--------------------------------
### PyFilesystem URL Examples
Source: https://docs.panoramax.fr/backend/install/settings?q=
Examples of valid PyFilesystem strings for local disk or S3-compatible storage backends.
```text
example:
* `/path/to/pic/dir` for disk storage
* `s3://mybucket/myfolder?endpoint_url=https%3A%2F%2Fs3.fr-par.scw.cloud®ion=fr-par` for S3 storage
```
--------------------------------
### Install and run via uv
Source: https://docs.panoramax.fr/cli/INSTALL
Use uv to run the CLI directly or install it into a persistent environment.
```bash
uvx panoramax_cli --help
```
```bash
# install
uv tool install panoramax_cli
# run
panoramax_cli --help
```
--------------------------------
### Install Panoramax via Git
Source: https://docs.panoramax.fr/backend/install/install?q=
Install the API from the source repository using a virtual environment.
```bash
# Retrieve API source code
git clone https://gitlab.com/panoramax/server/api.git panoramax-api
cd panoramax-api/
# Enable Python environment
python3 -m venv env
source ./env/bin/activate
# Install Python dependencies
pip install -e .
```
--------------------------------
### Install write-exif dependency
Source: https://docs.panoramax.fr/pictures-metadata/tech/api_reference
Install the required dependencies for the writer module.
```bash
pip install -e .[write-exif]
```
--------------------------------
### Install development dependencies and run tests
Source: https://docs.panoramax.fr/federated-catalog/dev/harvester
Install the development requirements in a virtual environment and execute the test suite.
```bash
pip install -e .[dev]
pytest
```
--------------------------------
### Install and load spatial extension
Source: https://docs.panoramax.fr/federated-catalog/tutorials/duckdb
Required setup to enable spatial query capabilities in DuckDB.
```sql
INSTALL SPATIAL;
LOAD SPATIAL;
```
--------------------------------
### Install Rust toolchain
Source: https://docs.panoramax.fr/federated-catalog/install
Use the official rustup script to install the required Rust environment.
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
--------------------------------
### Build and run production
Source: https://docs.panoramax.fr/frontend/02_Setup
Compiles the application for production and starts the server.
```bash
pnpm build
```
```bash
yarn build
```
```bash
npm run build
```
```bash
node server.js
```
--------------------------------
### Install Panoramax via PyPI
Source: https://docs.panoramax.fr/backend/install/install?q=
Install the API package directly from PyPI into a virtual environment.
```bash
# Enable Python environment
python3 -m venv env
source ./env/bin/activate
# Install Python dependencies
pip install geovisio
```
--------------------------------
### Verify CLI installation
Source: https://docs.panoramax.fr/pictures-metadata/install
Check that the tool is installed and accessible.
```bash
geopic-tag-reader --help
```
--------------------------------
### Initialize environment configuration
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak
Create the .env file from the provided example template.
```bash
cp env.example .env
```
--------------------------------
### Install via pipx
Source: https://docs.panoramax.fr/cli/INSTALL
Install the CLI in an isolated virtual environment using pipx.
```bash
pipx install panoramax_cli
```
--------------------------------
### Start Database via Docker Compose
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Alternative method to start the database service using the project's Docker Compose configuration.
```bash
docker compose -p panoramax_api_test up -d db
```
--------------------------------
### Install Formatting Dependencies
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Installs the required development dependencies for code formatting.
```bash
pip install --group format
```
--------------------------------
### Build and serve documentation with MkDocs
Source: https://docs.panoramax.fr/web-viewer/09_Develop
Installs the necessary dependencies and runs the local development server or builds the static site.
```bash
pip install mkdocs mkdocs-material
mkdocs serve
mkdocs build
```
--------------------------------
### Clone and navigate to the project directory
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth
Initial setup steps to access the required Docker configuration files.
```bash
git clone https://gitlab.com/panoramax/server/api.git panoramax-api
cd panoramax-api/docker/full-osm-auth/
```
--------------------------------
### viewer.onceAllAPIsReady()
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer?q=
Waits for all APIs setup.
```APIDOC
## viewer.onceAllAPIsReady()
### Description
Waits for all APIs setup. This is useful for two-APIs setup.
### Returns
- **Promise** - Fulfils with null when two APIs are ready, rejects with string error message.
```
--------------------------------
### Build and deploy application
Source: https://docs.panoramax.fr/frontend/09_Develop
Builds the project and prepares the production environment, followed by starting the Express server.
```bash
pnpm build:deploy
```
```bash
node server.js
```
--------------------------------
### Run Windows binary
Source: https://docs.panoramax.fr/cli/INSTALL
Execute the downloaded Windows executable to verify installation.
```bash
panoramax_cli-win-amd64.exe --help
```
--------------------------------
### Install dependencies
Source: https://docs.panoramax.fr/frontend/02_Setup
Installs project dependencies using the preferred package manager.
```bash
pnpm install
```
```bash
yarn install
```
```bash
npm install
```
--------------------------------
### Install Bacon for Hot Reloading
Source: https://docs.panoramax.fr/federated-catalog/dev/api
Install the bacon tool to enable automatic rebuilds during development.
```bash
cd api
cargo install --locked bacon
```
--------------------------------
### Initialize PhotoViewer with HTML
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/PhotoViewer
Examples showing basic initialization, usage with slotted widgets, and disabling default widgets.
```html
```
--------------------------------
### Install legacy version
Source: https://docs.panoramax.fr/cli/INSTALL
Install a specific older version of the CLI for compatibility with older APIs.
```bash
pip install panoramax_cli=0.3.13
```
--------------------------------
### Run development environments
Source: https://docs.panoramax.fr/frontend/09_Develop
Commands to start the development servers for the front-office and back-office applications.
```bash
pnpm dev:app
```
```bash
pnpm dev:admin
```
--------------------------------
### viewer.onceAPIReady()
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer
Waits for initial API setup.
```APIDOC
## viewer.onceAPIReady() -> Promise
### Description
Waits for initial API setup.
### Returns
- **Promise** - Fulfils with null when API is ready, rejects with a string error message.
```
--------------------------------
### Install Linux binary to system path
Source: https://docs.panoramax.fr/cli/INSTALL
Move the binary to a system directory for global access.
```bash
chmod u+x panoramax_cli-linux-amd64
mv panoramax_cli-linux-amd64 /usr/local/bin/panoramax_cli
panoramax_cli --help
```
--------------------------------
### Start Keycloak Server
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Launches a pre-configured Keycloak instance using Docker Compose.
```bash
docker-compose -f docker/docker-compose-keycloak.yml up
```
--------------------------------
### Initialize pnx-mini component
Source: https://docs.panoramax.fr/web-viewer/reference/components/layout/Mini
Usage example for the pnx-mini element, showing how to pass an icon and a child component.
```html
```
--------------------------------
### Start API with Docker
Source: https://docs.panoramax.fr/backend/install/running
Commands to run the API container with standard or SSL configurations.
```bash
docker run \
-e DB_URL= \
-p 5000:5000 \
--name geovisio \
-v :/data/geovisio \
panoramax/api:develop \
api
```
```bash
docker run \
-e DB_URL= \
-p 5000:5000 \
--name geovisio \
-v :/data/geovisio \
panoramax/api:develop \
ssl-api
```
--------------------------------
### Start PostgreSQL Test Database with Docker
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Initializes a temporary PostgreSQL/PostGIS container for testing purposes.
```bash
docker run -d --name geovisio_test -e POSTGRES_USER=gvs -e POSTGRES_PASSWORD=gvspwd -e POSTGRES_DB=geovisio -p 5445:5432 --shm-size=1g docker.io/postgis/postgis:17-3.5
```
--------------------------------
### Run development servers
Source: https://docs.panoramax.fr/frontend/02_Setup
Starts the development server for either the main application or the admin interface.
```bash
pnpm dev:app
```
```bash
yarn dev:app
```
```bash
npm run dev:app
```
```bash
pnpm dev:admin
```
```bash
yarn dev:admin
```
```bash
npm run dev:admin
```
--------------------------------
### Running the Panoramax API Locally
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Start the backend server to access the API and Swagger documentation at localhost:5000/api/docs/swagger.
```bash
panoramax_backend run
```
--------------------------------
### Example URL with Map and Picture Parameters
Source: https://docs.panoramax.fr/web-viewer/03_URL_settings?q=
A sample URL demonstrating the use of map coordinates and picture ID parameters.
```text
https://api.panoramax.xyz/?map=19.51/48.1204522/-1.7199004&pic=890b6268-7716-4e34-ada9-69985e6c1657
```
--------------------------------
### Deploy Meta-Catalog with Docker Compose
Source: https://docs.panoramax.fr/federated-catalog/install
Use Docker Compose to clone the repository and start the meta-catalog services.
```bash
git clone https://gitlab.com/panoramax/server/meta-catalog.git
cd meta-catalog/
docker compose -p meta-catalog up --build
```
--------------------------------
### Installing Development Dependencies
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Install the project in editable mode with development dependencies. Requires pip version 25.1 or higher.
```bash
pip install -e . --group dev
```
--------------------------------
### Run and install Linux binary
Source: https://docs.panoramax.fr/cli/INSTALL
Set execution permissions and run the Linux binary, or move it to a system path for global access.
```bash
chmod u+x panoramax_cli-linux-amd64
./panoramax_cli-linux-amd64 --help
```
```bash
chmod u+x panoramax_cli-linux-amd64
mv panoramax_cli-linux-amd64 /usr/local/bin/panoramax_cli
panoramax_cli --help
```
--------------------------------
### Start API with Gunicorn or Waitress
Source: https://docs.panoramax.fr/backend/install/running
Commands to run the Panoramax API using production-ready WSGI servers.
```bash
gunicorn -b :5000 'geovisio:create_api()'
```
```bash
pip install waitress
python3 -m waitress --port 5000 --url-scheme=https --call 'geovisio:create_api'
```
--------------------------------
### Initialize pnx-viewer component
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer
Examples of embedding the viewer with different configurations, including metacatalog settings, custom slotted widgets, and map options.
```html
```
--------------------------------
### GET /api/annotations/:annotationId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Get a specific annotation by ID (alias).
```APIDOC
## GET /api/annotations/:annotationId
### Description
Get a specific annotation by ID (alias).
### Method
GET
### Endpoint
/api/annotations/:annotationId
```
--------------------------------
### Loading Panoramax Web Viewer Dependencies
Source: https://docs.panoramax.fr/web-viewer/tutorials/migrate_v5
Examples for loading the viewer via ES Modules or the legacy bundled approach.
```html
```
```html
```
```html
```
--------------------------------
### Run Docker Compose with Blurring API
Source: https://docs.panoramax.fr/backend/install/install?q=
Start a full Panoramax instance including the optional blurring service.
```bash
docker compose -f docker/docker-compose-full.yml -f docker/docker-compose-blurring.yml up
```
--------------------------------
### Upgrade via uv tool
Source: https://docs.panoramax.fr/cli/INSTALL
Upgrade the installed tool using uv.
```bash
uv tool upgrade panoramax_cli
```
--------------------------------
### Initialize pnx-popup component
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Popup
Displays a basic usage example of the pnx-popup element with a close event listener.
```html
alert("closed")}>
Popup content
```
--------------------------------
### Run Docker Compose on Linux
Source: https://docs.panoramax.fr/backend/install/install?q=
Start a full Panoramax instance using host networking, specifically for Linux environments.
```bash
docker compose -f docker/docker-compose-full.yml -f docker/docker-compose-full-linux.yml up
```
--------------------------------
### Start services with optional blurring
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak
Launch the Docker containers including the optional blurring service using multiple compose files.
```bash
docker compose --project-name geovisio-osm -f docker-compose.yml -f ../docker-compose-blurring.yml up -d
```
--------------------------------
### Implement Tutorial
Source: https://docs.panoramax.fr/frontend/Components-App
Displays static tutorial images for Android users.
```vue
```
--------------------------------
### Prepare code for contribution
Source: https://docs.panoramax.fr/pictures-metadata/develop
Run CI checks or install pre-commit hooks to ensure code quality.
```bash
make ci
```
```bash
pip install -e .[dev]
pre-commit install
```
--------------------------------
### Initialize SearchBar element
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/SearchBar?q=
Example of declaring the pnx-search-bar element with custom properties and event handling.
```html
console.log(e.detail)}
>
```
--------------------------------
### GET /api/collections/:collectionId/items/:itemId/annotations/:annotationId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Get a specific annotation by ID.
```APIDOC
## GET /api/collections/:collectionId/items/:itemId/annotations/:annotationId
### Description
Get a specific annotation by ID.
### Method
GET
### Endpoint
/api/collections/:collectionId/items/:itemId/annotations/:annotationId
```
--------------------------------
### Run via uvx
Source: https://docs.panoramax.fr/cli/INSTALL?q=
Run the CLI directly using uvx without persistent installation.
```bash
uvx panoramax_cli --help
```
--------------------------------
### Initialize pnx-togglable-group
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/TogglableGroup
Usage example showing the component structure with a button slot and menu content.
```html
Open menu
Menu content
```
--------------------------------
### Implementing the Legend component
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/widgets/Legend
Examples showing the default configuration, custom editor slots, and the lightweight display mode for the pnx-widget-legend element.
```html
```
--------------------------------
### Manage Docker services
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak
Commands to start, monitor, and verify the status of the Panoramax authentication services.
```bash
docker compose --project-name geovisio-auth up -d
```
```bash
docker compose -p geovisio-auth ps
```
```bash
docker compose -p geovisio-auth logs -f
```
```bash
curl --fail http://localhost:8080/api
```
--------------------------------
### Create database
Source: https://docs.panoramax.fr/backend/install/database_setup?q=
Initialize the database with UTF-8 encoding and set the owner.
```bash
$ sudo su - postgres -c "psql -c \"CREATE DATABASE panoramax ENCODING 'UTF-8' TEMPLATE template0 OWNER panoramax\""
```
--------------------------------
### Manage Harvester Timer
Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd?q=
Commands to start and enable the harvest-instances timer.
```bash
systemctl start harvest-instances.timer
```
```bash
systemctl enable harvest-instances.timer
```
--------------------------------
### Initialize Editor Component
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Editor
Basic implementation of the pnx-editor element and an example using custom slotted content.
```html
My custom text
```
--------------------------------
### Configure pg_hba.conf entry
Source: https://docs.panoramax.fr/backend/install/database_setup?q=
Example entry to allow database access from a specific IP range.
```text
host panoramax panoramax 172.17.0.0/24 trust
```
--------------------------------
### Manage and verify Docker services
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth
Commands to start, monitor, and test the API service status.
```bash
docker compose --project-name geovisio-osm up -d
```
```bash
docker compose -p geovisio-osm ps
```
```bash
docker compose -p geovisio-osm logs -f
```
```bash
curl --fail http://localhost:8080/api
```
--------------------------------
### Start Stats Refresh Timer
Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd?q=
Start the timer responsible for refreshing materialized views for stats.
```bash
systemctl start stats-refresh.timer
```
--------------------------------
### Initialize CoverageMap Component
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/CoverageMap
Example of declaring the pnx-coverage-map element with required endpoint and map configuration.
```html
```
--------------------------------
### Install Pre-commit Hooks
Source: https://docs.panoramax.fr/backend/dev/develop_server?q=
Configures git hooks to automatically format code upon committing.
```bash
pre-commit install
```
--------------------------------
### Initialize GeoSearch Component
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/widgets/GeoSearch?q=
Examples showing how to implement the default geocoder and a custom-URL geocoder using the pnx-widget-geosearch element.
```html
```
--------------------------------
### Manage and monitor Docker services
Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth?q=
Commands to start, inspect, and monitor the status of the Panoramax services.
```bash
docker compose --project-name geovisio-osm up -d
```
```bash
docker compose -p geovisio-osm ps
```
```bash
docker compose -p geovisio-osm logs -f
```
--------------------------------
### HATEOAS Link Structure Example
Source: https://docs.panoramax.fr/backend/api/api
Example of a JSON link object indicating an edit permission, including the HTTP method, endpoint, and editable attributes.
```json
"links": [
...
{
"rel": "edit",
"type": "application/json",
"method": "PATCH", // <-- HTTP verb to use to call the endpoint
"href": "https://my_panoramax.org/api/collections/some_id", // <-- api endpoint
"attributes": ["relative_heading", "semantics", "sortby", "title", "visibility"], // <-- the user can patch those fields
},
]
```
--------------------------------
### Install Panoramax via NPM
Source: https://docs.panoramax.fr/web-viewer
Use this command to add the Panoramax web viewer package to your project dependencies.
```bash
npm install @panoramax/web-viewer
```
--------------------------------
### Example of v4 URL structure
Source: https://docs.panoramax.fr/web-viewer/tutorials/migrate_v4
The new URL format uses search parameters instead of hash fragments for configuration.
```text
https://panoramax.ign.fr/?background=streets&focus=map&map=9/48.6659/2.3237&speed=250
```
--------------------------------
### GET /api/collections
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieves a list of sequences.
```APIDOC
## GET /api/collections
### Description
Retrieves a list of sequences.
### Method
GET
### Endpoint
/api/collections
### Parameters
#### Query Parameters
- **filter** (string) - Optional - Common Query Language expression for filtering; supports status='deleted'.
- **created_before** (string) - Optional - Deprecated.
- **created_after** (string) - Optional - Deprecated.
```
--------------------------------
### Initialize Basic Viewer Component
Source: https://docs.panoramax.fr/web-viewer
Create a viewer instance using the pnx-viewer web component.
```html
```
--------------------------------
### Configure Harvester Instances
Source: https://docs.panoramax.fr/federated-catalog/install
Add instances to the federation using the stac-harvester CLI via manual installation or uv.
```bash
cd harvester
python -m pip install --upgrade virtualenv
virtualenv .venv
source .venv/bin/activate
pip install -e .
stac-harvester add-instance --db "postgresql://username:password@localhost:5432/panoramax" my-instance --url https://your.panoramax.org
```
```bash
cd harvester
uv sync
uv run stac-harvester add-instance --db "postgresql://username:password@localhost:5432/panoramax" my-instance --url https://your.panoramax.org
```
```bash
docker compose -p meta-catalog -f docker-compose.yml -f docker-compose-harvester.yml run --build --rm harvester -c "stac-harvester add-instance my-instance --url https://your.panoramax.org"
```
--------------------------------
### api.getDataBbox()
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Get available data bounding box.
```APIDOC
## api.getDataBbox()
### Description
Get available data bounding box.
### Returns
- **LngLatBoundsLike** - The bounding box or null if not available
### Throws
- Error: If API is not ready
```
--------------------------------
### api.getDataBbox()
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Get available data bounding box.
```APIDOC
## api.getDataBbox()
### Description
Get available data bounding box.
### Returns
- **LngLatBoundsLike** - The bounding box or null if not available
```
--------------------------------
### Manage Panoramax API Service
Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd
Commands to start and check the status of the main Panoramax API service.
```bash
service panoramax start
```
```bash
service panoramax status
```
--------------------------------
### Build Panoramax from Source
Source: https://docs.panoramax.fr/web-viewer
Clone the repository and build the library locally using Node.js.
```bash
git clone https://gitlab.com/panoramax/clients/web-viewer.git
cd web-viewer/
npm install
npm build
```
--------------------------------
### GET /api/reports
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieve a list of user reports.
```APIDOC
## GET /api/reports
### Description
Retrieve a list of user reports.
### Method
GET
### Endpoint
/api/reports
```
--------------------------------
### photo.playSequence()
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Photo
Starts continuous playback of the current sequence.
```APIDOC
## photo.playSequence()
### Description
Goes continuously to next picture in sequence as long as possible.
```
--------------------------------
### Initialize and Configure SemanticsEditor
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/SemanticsEditor
Demonstrates basic component usage, validity checking, and CSS styling via shadow parts.
```html
console.log(e.detail.semantics)}
/>
```
--------------------------------
### Terminal
Source: https://docs.panoramax.fr/frontend/Components-App
A terminal-style component for displaying installation and upload commands.
```APIDOC
## Terminal
### Description
Displays installation and upload commands in a terminal-style UI.
### Props
- **textUpload** (String) - Optional - The upload command text.
- **textInstall** (String) - Optional - The installation command text.
### Usage Example
```
--------------------------------
### api.getUserName(userId)
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Get user name based on its ID.
```APIDOC
## api.getUserName(userId)
### Description
Get user name based on its ID.
### Parameters
- **userId** (string) - Required - The user UUID
### Returns
- **Promise** - The user name (or null if not found)
### Throws
- Error: If API is not ready
```
--------------------------------
### Build and run the API
Source: https://docs.panoramax.fr/federated-catalog/install
Compile and execute the API with the specified database connection string.
```bash
cd api
cargo run --release -- --db-url=postgres://username:password@localhost:5432/panoramax
```
--------------------------------
### api.getUserName(userId)
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Get user name based on its ID.
```APIDOC
## api.getUserName(userId)
### Description
Get user name based on its ID.
### Parameters
- **userId** (string) - Required - The user UUID
### Returns
- **Promise** - The user name (or null if not found)
```
--------------------------------
### Retrieve User Tokens List
Source: https://docs.panoramax.fr/backend/api/api
Example response structure when fetching a list of user tokens from the API.
```json
[
{
"description": "default token",
"generated_at": "2023-05-11T15:56:59.410095+00:00",
"id": "e11c255c-6023-4eee-bb47-31566f4ce65f",
"links": [
{
"href": "https://my-panoramax.fr/api/users/me/tokens/e11c255c-6023-4eee-bb47-31566f4ce65f",
"rel": "self",
"type": "application/json"
}
]
}
]
```
--------------------------------
### GET /api/users/me/reports
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieve reports for the currently authenticated user.
```APIDOC
## GET /api/users/me/reports
### Description
Retrieve reports for the currently authenticated user.
### Method
GET
### Endpoint
/api/users/me/reports
```
--------------------------------
### GET & POST /api/search
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Searches for pictures across the system.
```APIDOC
## GET & POST /api/search
### Description
Searches for pictures. Note that numberMatched and numberReturned properties are not returned in the response.
### Method
GET, POST
### Endpoint
/api/search
```
--------------------------------
### GET & POST /api/search
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q=
Search for pictures across the system.
```APIDOC
## GET & POST /api/search
### Description
Search for pictures. Note that numberMatched and numberReturned properties are not returned.
### Method
GET, POST
### Endpoint
/api/search
```
--------------------------------
### Initialize pnx-location-precision-doc
Source: https://docs.panoramax.fr/web-viewer/reference/components/menus/LocationPrecisionDoc
Use this element to render the location precision documentation summary within a Lit template.
```html
```
--------------------------------
### GET /api/collections
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q=
Retrieve a list of sequences with optional filtering.
```APIDOC
## GET /api/collections
### Description
Retrieve a list of sequences. Supports filtering via CQL expressions.
### Method
GET
### Endpoint
/api/collections
### Parameters
#### Query Parameters
- **filter** (string) - Optional - CQL expression for filtering (e.g., status='deleted')
- **created_before** (string) - Optional - Deprecated
- **created_after** (string) - Optional - Deprecated
```
--------------------------------
### Generate project documentation
Source: https://docs.panoramax.fr/pictures-metadata/develop
Update the USAGE.md file or serve the Mkdocs documentation locally.
```bash
make docs
```
```bash
pip install -e .[docs]
mkdocs serve
```
--------------------------------
### Configure PSV Options
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/PhotoViewer
Example of passing custom options to the underlying Photo Sphere Viewer component via the psv-options attribute.
```text
psv-options="{'transitionDuration': 500, 'picturesNavigation': 'pic'}"
```
--------------------------------
### GET /api/configuration/excluded_areas
Source: https://docs.panoramax.fr/backend/install/deep_dive/excluded_areas
Retrieves the list of general excluded areas.
```APIDOC
## GET /api/configuration/excluded_areas
### Description
Lists general excluded areas. If `all=true` is provided, it returns all areas; otherwise, it returns publicly visible areas.
### Method
GET
### Endpoint
/api/configuration/excluded_areas
### Parameters
#### Query Parameters
- **all** (boolean) - Optional - If true, returns all areas including non-public ones.
```
--------------------------------
### Perform a release
Source: https://docs.panoramax.fr/cli/DEVELOP
Steps to update versioning, documentation, and merge changes from develop to main.
```bash
git checkout develop
git pull
vim CHANGELOG.md # Edit version + links at bottom
vim panoramax_cli/__init__.py # Edit version
make docs ci
git add *
git commit -m "Release x.x.x"
git tag -a x.x.x -m "Release x.x.x"
git push origin develop
git checkout main
git merge develop
git push origin main --tags
```
--------------------------------
### api.getPictureThumbnailURL(picId, [seqId])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Get thumbnail URL for a specific picture.
```APIDOC
## api.getPictureThumbnailURL(picId, [seqId])
### Description
Get thumbnail URL for a specific picture.
### Parameters
- **picId** (string) - Required - The picture unique identifier
- **seqId** (string) - Optional - The sequence ID
### Returns
- **Promise** - The corresponding URL on resolve, or null if no thumbnail could be found
### Throws
- Error: If API is not ready
```
--------------------------------
### api.getPictureThumbnailURL(picId, [seqId])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Get thumbnail URL for a specific picture.
```APIDOC
## api.getPictureThumbnailURL(picId, [seqId])
### Description
Get thumbnail URL for a specific picture.
### Parameters
- **picId** (string) - Required - The picture unique identifier
- **seqId** (string) - Optional - The sequence ID
### Returns
- **Promise** - The corresponding URL on resolve, or null if no thumbnail could be found
```
--------------------------------
### GET /api/auth/logout
Source: https://docs.panoramax.fr/backend/api/api?q=
Logs the user out of the current Panoramax instance session.
```APIDOC
## GET /api/auth/logout
### Description
Performs a logout from the current Panoramax instance.
### Method
GET
### Endpoint
/api/auth/logout
```
--------------------------------
### Initialize Viewer with Plugin
Source: https://docs.panoramax.fr/web-viewer/tutorials/plugins
Create the viewer component programmatically in JavaScript to pass the plugin configuration via psv-options.
```javascript
```
--------------------------------
### GET /api/auth/login
Source: https://docs.panoramax.fr/backend/api/api?q=
Redirects the user to the configured OAuth provider for authentication.
```APIDOC
## GET /api/auth/login
### Description
Redirects the user to the configured instance's OAuth provider to initiate the authentication flow.
### Method
GET
### Endpoint
/api/auth/login
```
--------------------------------
### GET /api/users/me/tokens
Source: https://docs.panoramax.fr/backend/api/api
Retrieves a list of Panoramax tokens for the authenticated user.
```APIDOC
## GET /api/users/me/tokens
### Description
Retrieves a list of tokens associated with the currently authenticated user. This requires an active session cookie.
### Method
GET
### Endpoint
/api/users/me/tokens
### Response
#### Success Response (200)
- **tokens** (array) - List of token objects containing id, description, and links.
```
--------------------------------
### GET /api/pictures/:itemId/annotations
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
List annotations for a specific picture (alias).
```APIDOC
## GET /api/pictures/:itemId/annotations
### Description
List annotations for a specific picture (alias).
### Method
GET
### Endpoint
/api/pictures/:itemId/annotations
```
--------------------------------
### GET /api/pictures/:itemId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieve a specific picture by ID (alias).
```APIDOC
## GET /api/pictures/:itemId
### Description
Retrieve a specific picture by ID (alias).
### Method
GET
### Endpoint
/api/pictures/:itemId
```
--------------------------------
### GET /api/collections/:collectionId/items/:itemId/annotations
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
List all annotations for a specific picture.
```APIDOC
## GET /api/collections/:collectionId/items/:itemId/annotations
### Description
List all annotations for a specific picture.
### Method
GET
### Endpoint
/api/collections/:collectionId/items/:itemId/annotations
```
--------------------------------
### GET /api/reports/:id
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieve a specific user report by ID.
```APIDOC
## GET /api/reports/:id
### Description
Retrieve a specific user report by ID.
### Method
GET
### Endpoint
/api/reports/:id
### Parameters
#### Path Parameters
- **id** (string) - Required - The unique identifier of the report.
```
--------------------------------
### View upload command help
Source: https://docs.panoramax.fr/cli/USAGE
Displays the help menu for the upload subcommand.
```bash
panoramax_cli upload --help
```
--------------------------------
### GET /api/collections/:collectionId/items/:itemId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieves metadata for a specific picture.
```APIDOC
## GET /api/collections/:collectionId/items/:itemId
### Description
Retrieves metadata for a specific picture. Note that response status 102 indicates the picture is still under process.
### Method
GET
### Endpoint
/api/collections/:collectionId/items/:itemId
### Parameters
#### Path Parameters
- **collectionId** (string) - Required - The ID of the collection.
- **itemId** (string) - Required - The ID of the picture item.
```
--------------------------------
### Configure API via .env Files
Source: https://docs.panoramax.fr/backend/install/settings?q=
Load configuration from a specified .env file using various tools.
```bash
panoramax_backend --env-file my_config.env
```
```bash
flask --env-file my_config.env
```
```bash
dotenv --file my_config.env run waitress-serve --port 5000 --call geovisio:create_api
```
```bash
dotenv --file my_config.env run gunicorn -b :5000 'geovisio:create_api()'
```
```bash
docker run --env-file my_config.env panoramax/api:latest
```
--------------------------------
### Execute release commands
Source: https://docs.panoramax.fr/web-viewer/90_Releases
Run these commands sequentially to prepare, commit, and push a new version release.
```bash
git checkout develop
vim package.json # Change version
vim package-lock.json # Change version
npm run doc
npm run build # To re-generate code snippets
vim CHANGELOG.md # Replace unreleased to version number (and links at bottom)
git add *
git commit -m "Release x.x.x"
git tag -a x.x.x -m "Release x.x.x"
git push origin develop
git checkout main
git merge develop
git push origin main --tags
```
--------------------------------
### GET /api/collections/:collectionId/items/:itemId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q=
Retrieve metadata for a specific picture.
```APIDOC
## GET /api/collections/:collectionId/items/:itemId
### Description
Retrieve metadata for a specific picture. Response status 102 indicates processing, 200 indicates ready.
### Method
GET
### Endpoint
/api/collections/:collectionId/items/:itemId
### Parameters
#### Path Parameters
- **collectionId** (string) - Required - The ID of the collection
- **itemId** (string) - Required - The ID of the item
```
--------------------------------
### GET /api/collections/:collectionId/items
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieves a list of pictures in a specific sequence.
```APIDOC
## GET /api/collections/:collectionId/items
### Description
Retrieves a list of pictures in a specific sequence.
### Method
GET
### Endpoint
/api/collections/:collectionId/items
### Parameters
#### Path Parameters
- **collectionId** (string) - Required - The ID of the collection.
#### Query Parameters
- **startAfterRank** (integer) - Optional - Pagination parameter.
- **withPicture** (boolean) - Optional - Include picture details.
```
--------------------------------
### urlHandler.listenToChanges()
Source: https://docs.panoramax.fr/web-viewer/reference/utils/URLHandler?q=
Starts listening to URL and parent changes to trigger updates.
```APIDOC
## urlHandler.listenToChanges()
### Description
Starts listening to URL and parent changes through events, enabling automatic synchronization.
```
--------------------------------
### Deploy with Docker
Source: https://docs.panoramax.fr/frontend/02_Setup?q=
Runs the Panoramax website using the official Docker image or a custom-built image.
```bash
docker run \
-e VITE_API_URL="https://my-panoramax-api.fr/" \
-e VITE_TILES="https://my-panoramax-api.fr/vector/tiles/style.json" \
-e VITE_VIEWER_SETTINGS='{ \"map-options\": {\"theme\": \"score\" } }' \
-p 3000:3000 \
--name panoramax-website \
-d \
panoramax/website:latest
```
```bash
docker run registry.gitlab.com/panoramax/server/website:
```
```bash
docker build -t panoramax/website:latest .
```
--------------------------------
### editor.onceAPIReady()
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Editor
Returns a promise that resolves when the initial API setup is complete.
```APIDOC
## editor.onceAPIReady() -> Promise
### Description
Waits for the initial API setup to be ready.
### Returns
- **Promise** - Resolves with null when the API is ready, or rejects with an error message.
```
--------------------------------
### Initialize Photo Component
Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Photo
Instantiate the Photo component by providing the parent view, target DOM element, and optional configuration.
```javascript
const psv = new Panoramax.components.ui.Photo(viewer, psvNode, {transitionDuration: 500})
```
--------------------------------
### coverageMap.onceAPIReady()
Source: https://docs.panoramax.fr/web-viewer/reference/components/core/CoverageMap?q=
Returns a promise that resolves when the initial API setup is complete.
```APIDOC
## coverageMap.onceAPIReady() => Promise
### Description
Waits for the initial API configuration to be ready.
### Returns
- **Promise** - Resolves with null when the API is ready, or rejects with a string error message.
```
--------------------------------
### Update dependencies via pip
Source: https://docs.panoramax.fr/cli/INSTALL
Install or update dependencies in editable mode.
```bash
pip install --upgrade -e .
```
--------------------------------
### Initialize pnx-player-options component
Source: https://docs.panoramax.fr/web-viewer/reference/components/menus/PlayerOptions
Use this tag to embed the player options menu within the viewer context.
```html
```
--------------------------------
### Update via uvx
Source: https://docs.panoramax.fr/cli/INSTALL
Run the latest version using uvx.
```bash
uvx panoramax_cli@latest --help
```
--------------------------------
### new API(endpoint, [options])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Initializes a new instance of the API class to communicate with a Panoramax/STAC endpoint.
```APIDOC
## new API(endpoint, [options])
### Description
Initializes a new API instance. The endpoint corresponds to the STAC landing page.
### Parameters
- **endpoint** (string) - Required - The STAC landing page URL.
- **options** (object) - Optional - Configuration options.
- **tiles** (string) - Optional - API route serving pictures & sequences vector tiles.
- **skipReadLanding** (boolean) - Optional - Default: false. If true, does not call API landing page automatically.
- **fetch** (object) - Optional - Custom options for fetch calls.
```
--------------------------------
### api.getSequenceMetadataUrl(seqId)
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Get full URL for retrieving a specific sequence metadata.
```APIDOC
## api.getSequenceMetadataUrl(seqId)
### Description
Get full URL for retrieving a specific sequence metadata.
### Parameters
- **seqId** (string) - Required - The sequence ID
### Returns
- **string** - The corresponding URL
### Throws
- Error: If API is not ready
```
--------------------------------
### api.getSequenceMetadataUrl(seqId)
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Get full URL for retrieving a specific sequence metadata.
```APIDOC
## api.getSequenceMetadataUrl(seqId)
### Description
Get full URL for retrieving a specific sequence metadata.
### Parameters
- **seqId** (string) - Required - The sequence ID
### Returns
- **string** - The corresponding URL
```
--------------------------------
### api.getPictureThumbnailURLForSequence(seqId, [seq])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Get a picture thumbnail URL for a given sequence.
```APIDOC
## api.getPictureThumbnailURLForSequence(seqId, [seq])
### Description
Get a picture thumbnail URL for a given sequence.
### Parameters
- **seqId** (string) - Required - The sequence ID
- **seq** (object) - Optional - The sequence metadata (with links) if already loaded
### Returns
- **Promise** - Promise resolving on the picture thumbnail URL, or null if not found
### Throws
- Error: If API is not ready
```
--------------------------------
### new API(endpoint, [options])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API
Initializes a new instance of the API utility class to communicate with a Panoramax/STAC API.
```APIDOC
## new API(endpoint, [options])
### Description
Initializes the API utility to communicate with the STAC landing page.
### Parameters
- **endpoint** (string) - Required - The STAC landing page URL.
- **options** (object) - Optional - Configuration options.
- **tiles** (string) - Optional - API route for vector tiles.
- **skipReadLanding** (boolean) - Optional - Default: false. If true, skips automatic landing page fetch.
- **fetch** (object) - Optional - Custom fetch configuration.
```
--------------------------------
### api.getPictureThumbnailURLForSequence(seqId, [seq])
Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q=
Get a picture thumbnail URL for a given sequence.
```APIDOC
## api.getPictureThumbnailURLForSequence(seqId, [seq])
### Description
Get a picture thumbnail URL for a given sequence.
### Parameters
- **seqId** (string) - Required - The sequence ID
- **seq** (object) - Optional - The sequence metadata (with links) if already loaded
### Returns
- **Promise** - Promise resolving on the picture thumbnail URL, or null if not found
```
--------------------------------
### GET /api/users/me/tokens/:id
Source: https://docs.panoramax.fr/backend/api/api?q=
Retrieves a specific token and its associated JWT token.
```APIDOC
## GET /api/users/me/tokens/:id
### Description
Retrieves details for a specific token, including the `jwt_token` required for Bearer authentication.
### Method
GET
### Endpoint
/api/users/me/tokens/:id
### Parameters
#### Path Parameters
- **id** (string) - Required - The unique identifier of the token.
### Response
#### Success Response (200)
- **jwt_token** (string) - The JWT token used for Bearer authentication.
```
--------------------------------
### Update via uv
Source: https://docs.panoramax.fr/cli/INSTALL?q=
Use uv to run the latest version or upgrade the tool.
```bash
uvx panoramax_cli@latest --help
```
```bash
uv tool upgrade panoramax_cli
```
--------------------------------
### GET /api/upload_sets/
Source: https://docs.panoramax.fr/backend/api/api
Retrieves the status and progress of an upload set.
```APIDOC
## GET /api/upload_sets/
### Description
Checks the progress and status of an upload set, including whether processing is ready.
### Method
GET
### Endpoint
/api/upload_sets/
### Parameters
#### Path Parameters
- **UPLOAD_SET ID** (string) - Required - The ID of the upload set.
### Response
- **items_status** (object) - Status of each item in the set.
- **ready** (boolean) - Indicates if all collections are created and pictures are ready.
```
--------------------------------
### GET /api/collections/:collectionId/items/:itemId
Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility
Retrieve a specific item (picture) from a collection.
```APIDOC
## GET /api/collections/:collectionId/items/:itemId
### Description
Retrieve a specific item (picture) from a collection.
### Method
GET
### Endpoint
/api/collections/:collectionId/items/:itemId
```