1. Create a Cloudflare account and add your domain.
You can deploy FilePizza using Cloudflare Tunnel for easy hosting without port forwarding or complex network configuration.
2. Get the Global API token from Cloudflare.
3. Copy the envfile to `.env` and fill in the required values including the `CLOUDFLARE_API_KEY` and `HOST_DOMAIN` (the link to your cloudflared domain or sub-domain).
#### Prerequisites
4. Run the following command to build the docker file:
1. A Cloudflare account with your domain added
2. Cloudflare Global API token
3. Docker and Docker Compose installed
#### Setup
1. **Get your Cloudflare API token**: Go to Cloudflare dashboard → My Profile → API Tokens → Global API Key
2. **Configure environment**: Copy the `envfile` to `.env` and fill in your details:
```bash
cp envfile .env
# Edit .env with your values
```
3. **Build and deploy**:
```bash
```bash
pnpm run docker:build
npm run docker:build
npm run deploy:full
```
```
5. Run the following command to start the cloudflare deployment:
4. **Manual deployment** (if you prefer):
```bash
```bash
pnpm run deploy:full
# Build the Docker image
npm run docker:build
# Start the application stack
npm run docker:up
# Set up and start Cloudflare tunnel
npm run tunnel:setup
npm run tunnel:start
```
```
6. On the first usage, you will be directed to the Cloudflare login page. After logging in, you will have to authorize the domain you specified in the `.env` file `HOST_DOMAIN`.
7. After the authorization, you will be redirected to the FilePizza app. You can now use the app with your custom domain.
#### Usage
Once deployed, your FilePizza instance will be available at `https://your-domain.com`. Users can access the web interface to share files peer-to-peer.
#### CORS Configuration
FilePizza supports CORS configuration through the `API_ORIGINS` environment variable for external API access: