Compare commits

...
2 Commits
Author SHA1 Message Date
atakan 380076931c Update README.md 2026-07-22 17:20:15 +00:00
atakan f2e2a3850e Update README.md 2026-07-12 00:08:48 +00:00
+14 -5
View File
@@ -4,14 +4,20 @@ Street View Gallery is an enterprise-grade, geospatial visualization platform de
The platform aims organizations and individuals to show their projects which recorded for Google Street View and makes it publicly accessible and explore from single lightweight UI.
![Street View Gallery](https://www.atakanozban.com/Content/uploads/projects-media/327357bf39bc44fc83b1f21594f0deb4.png)
![Street View Gallery](https://www.atakanozban.com/Content/uploads/projects-media/f6a2a12f608c41559df999281315ea48.png)
## Quick Start (Docker run)
For evaluation or localized testing environments, execute the following command:
```bash
docker run -d -p 3000:3000 --name gsv_gallery atakanozban/gsv_gallery:latest
docker run -d -p 3000:3000 \
-e DATABASE_URL="file:./dev.db" \
-e ADMIN_USERNAME="admin" \
-e ADMIN_PASSWORD="your_password" \
-e SESSION_SECRET="your_session_secret" \
-e GOOGLE_MAPS_API_KEY="your_api_key" \
--name gsv_gallery atakanozban/gsv_gallery:latest
```
## Production Deployment (Docker Compose)
@@ -31,8 +37,7 @@ services:
- GOOGLE_MAPS_API_KEY=YOUR_GOOGLE_MAPS_API_KEY_HERE
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=YOUR_SECURE_PASSWORD_HERE
- GOOGLE_CLIENT_ID=YOUR_GOOGLE_CLIENT_ID_HERE
- GOOGLE_CLIENT_SECRET=YOUR_GOOGLE_CLIENT_SECRET_HERE
- SESSION_SECRET="your_session_secret"
volumes:
- ./data:/app/data
restart: unless-stopped
@@ -44,8 +49,12 @@ The platform utilizes environment variables for backend initialization. Ensure t
| Variable | Description | Requirement |
| :--- | :--- | :--- |
| `DATABASE_URL` | The PostgreSQL connection string utilized by the Prisma ORM layer for transaction logs and metadata persistence. | **Required** |
| `SESSION_SECRET` | Why you need it: After you log in, the app creates a signed cookie so it knows you're an admin. This secret is the key that signs and verifies that cookie. If someone doesn't know it, they can't forge a valid admin session. | **Required**
Note on Client-Side Integrations: The platform eliminates compile-time API dependencies. The Google Maps JavaScript API payload is resolved and securely injected via dynamic runtime state mechanics (/api/config) post-initialization.
### Notes
1- Client-Side Integrations: The platform eliminates compile-time API dependencies. The Google Maps JavaScript API payload is resolved and securely injected via dynamic runtime state mechanics (/api/config) post-initialization.
2- Session Secret Generation: `node -e console.log(require('crypto').randomBytes(32).toString('hex'))` Must be at least 32 characters. Keep it secret.
# Core Architecture & Features