PutPlace Server
A FastAPI-based file metadata storage service using MongoDB.
Installation
pip install putplace-server
Quick Start
# Start MongoDB (using Docker)
docker run -d --name mongodb -p 27017:27017 mongo:latest
# Configure the server (creates admin user, tests connections)
putplace_configure
# Start the server
ppserver start
# Check server status
ppserver status
# View logs
ppserver logs
Features
- REST API for storing and retrieving file metadata
- MongoDB backend with async support
- JWT and API key authentication
- User registration with email confirmation
- Admin dashboard for user management
- S3 storage backend support (optional)
- Google OAuth integration (optional)
API Endpoints
GET /- Root endpointGET /health- Health checkPOST /put_file- Store file metadataGET /get_file/{sha256}- Retrieve file by SHA256 hashGET /docs- Interactive API documentation (Swagger UI)GET /redoc- Alternative API documentation
Configuration
Configuration via environment variables or .env file:
MONGODB_URL=mongodb://localhost:27017
MONGODB_DATABASE=putplace
API_TITLE=PutPlace API
API_VERSION=0.8.1
# Admin user (created on first startup)
PUTPLACE_ADMIN_EMAIL=admin@example.com
PUTPLACE_ADMIN_PASSWORD=your-secure-password
Or via ppserver.toml:
[server]
host = "0.0.0.0"
port = 8000
[mongodb]
url = "mongodb://localhost:27017"
database = "putplace"
Server Management
# Start server (background)
ppserver start
# Start with custom options
ppserver start --host 0.0.0.0 --port 8080
# Stop server
ppserver stop
# Restart server
ppserver restart
# Check status
ppserver status
# View logs
ppserver logs
ppserver logs --follow
User Management
# List all users
pp_manage_users list
# Add a new user
pp_manage_users add --email user@example.com
# Delete a user
pp_manage_users delete --email user@example.com
# Reset password
pp_manage_users reset-password --email user@example.com
# Set/unset admin privileges
pp_manage_users setadmin --email user@example.com
pp_manage_users unsetadmin --email user@example.com
# List pending registrations
pp_manage_users pending
# Approve pending user
pp_manage_users approve --email user@example.com
Related
- putplace-client - CLI tool for scanning directories and uploading file metadata
License
Apache-2.0
Metadata
Release files for putplace-server 0.11.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| putplace_server-0.11.7.tar.gz | 127.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| putplace_server-0.11.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 245.5 kB
Release files / putplace_server-0.11.7.tar.gz
| Download URL | putplace_server-0.11.7.tar.gz |
|---|---|
| Size | 127.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
37784fbb4f94f53fac5e6171986575a4cbd2705c805a524f81815802eea0b4e3
|
|
BLAKE2b-256 checksum How to use checksums |
4abe7158712803aa3b7c85b47f6347d5b28917ce4c4ff2540907a61ce453ed18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 17, 2026.
Transparency logRelease files / putplace_server-0.11.7-py3-none-any.whl
| Download URL | putplace_server-0.11.7-py3-none-any.whl |
|---|---|
| Size | 118.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0e90ca63666fff4ce9b81a32d1a51b0948fa44b300d2474d4131bae44639a14
|
|
BLAKE2b-256 checksum How to use checksums |
d4a47b30665265394566a797ba30fe4a08ea92faf214edd5d2caea258d104eef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 17, 2026.
Transparency log