A Node.js Express application for managing text files in AWS S3 with Wikibase authentication, running in Docker.
- Browse and navigate S3 bucket folders
- Search for files within the current directory
- Edit and save text files directly in the browser
- Authentication via Wikibase (base.semlab.io)
- Dockerized deployment with volume mounting
- Docker and Docker Compose
- AWS Account with S3 access
- Wikibase account at base.semlab.io
-
Clone this repository
-
Create a
.envfile from the example:cp .env.example .env
-
Configure your
.envfile with:- AWS credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
- AWS region (AWS_REGION)
- S3 bucket name (S3_BUCKET_NAME)
- Session secret (SESSION_SECRET)
- Wikibase URL (default: https://base.semlab.io)
Build and start the container:
docker-compose up --buildThe application will be available at http://localhost:3000
To run in detached mode:
docker-compose up -d --buildTo stop the application:
docker-compose downFor local development without Docker:
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
/- Main file browser interface (requires authentication)/login- Login page with Wikibase authentication/api/s3/*- API endpoints for S3 operations
- Always use strong session secrets in production
- Ensure AWS credentials have minimal required permissions
- The application authenticates against the configured Wikibase instance
- All S3 operations require authentication
The AWS credentials need the following permissions for the configured bucket:
s3:ListBuckets3:GetObjects3:PutObjects3:DeleteObject
- Login issues: Verify your Wikibase credentials and that the WIKIBASE_URL is correct
- S3 access errors: Check AWS credentials and bucket permissions
- Docker issues: Ensure Docker daemon is running and ports are not in use