Stream Axis M3068-P 12MP 360° Panoramic Dome to Cloudflare R2

Enterprise 360-degree panoramic camera with native FTPS and SFTP cloud streaming. Follow our step-by-step setup guide below to stream footage directly to Cloudflare R2 via FTP/S with Rilavek as the pipe — zero on-prem NVR required.

Axis M3068-P 12MP 360° Panoramic Dome - Product View
Zero NVR Vulnerability

Your Axis M3068-P uploads footage offsite in real time directly to Cloudflare R2. Intruders cannot steal or destroy evidence by seizing on-prem recorder hardware.

S3-Native Retention

Store Axis M3068-P recordings in Cloudflare R2 on your own terms. Apply automated bucket lifecycle rules to roll over or archive clips after 30, 90, or 365 days.

Direct Streaming Bridge

Rilavek ingests native FTP/S streams from your Axis M3068-P and writes them directly to Cloudflare R2 via multipart S3 PUTs with zero disk writes.

Axis M3068-P 12MP 360° Panoramic Dome
Axis M3068-P 12MP 360° Panoramic Dome
FTP/S
Rilavek
Rilavek Bridge
S3 API
Cloudflare R2
Cloudflare R2

How to Stream Axis M3068-P 12MP 360° Panoramic Dome to Cloudflare R2

Follow these 6 steps to provision your object storage, configure Rilavek’s Data Store, Sender, and Ingestion Pipe, enter your camera firmware settings, and establish automated S3 retention rules.

01

Set Up Your Cloudflare R2Cloudflare R2 Bucket & Generate API Keys

Configure your target bucket and API credentials inside Cloudflare R2 so Rilavek can stream motion clips and continuous video directly into your storage.

Before You Begin: Active R2 Subscription

Cloudflare R2 provides an included monthly free tier of 10 GB storage, 1,000,000 Class A operations (uploads), 10,000,000 Class B operations (reads), and $0 egress bandwidth fees. Ensure you have completed the initial R2 subscription setup in your Cloudflare dashboard under Storage & databases > R2 before generating tokens.

1

Open R2 and Create Your Surveillance Bucket

In the Cloudflare Dashboard , navigate to Storage & databases > R2 > Overview. Click the blue Create bucket button and specify a name, such as cctv-axis-recordings.

Location & Data Sovereignty (Jurisdictions):

Leave location set to Automatic for the lowest-latency edge ingestion worldwide. If your organization requires strict data residency, select a specific Jurisdiction (European Union eu, United States us, or FedRAMP fedramp). Note that jurisdictional buckets require jurisdiction-specific S3 endpoints.

2

Copy Your 32-Character Cloudflare Account ID

On the right sidebar of the R2 Overview page under the Account Details section, locate and copy your 32-character hexadecimal Account ID. This is required to assemble your unique S3 API endpoint.

3

Create an Account API Token with Scoped Permissions

Under Account Details on the R2 overview page, select Manage next to API Tokens, then click Create API Token:

  • Token Type: Choose Create Account API token (recommended for bridge infrastructure so credentials remain valid independently of individual user accounts; requires Super Administrator role).
  • Permissions: Select Object Read & Write. This grants S3 API upload, download, and listing capabilities without exposing administrative privileges (like deleting buckets or altering account configs).
  • Bucket Scoping: Select Apply to specific buckets only and pick your created bucket (cctv-axis-recordings).
  • TTL / Expiration: Leave blank for permanent 24/7 camera recording, or specify an expiration according to your organization's security rotation schedule.

Click Create Account API token to generate your credentials.

4

Copy Your Access Key ID and Secret Access Key

One-Time Secret Display:Cloudflare displays your Secret Access Key (the SHA-256 hash of the token value) only once. If you navigate away without copying it, you will have to generate a new token.

Record your Access Key ID (token ID) and Secret Access Key securely for Step 2.

02

Add Your Data Store in Rilavek

In your Rilavek dashboard, navigate to Data Stores > New Data Store, select your provider, and enter your S3 credentials. Rilavek verifies the connection with an automated write-probe before saving.

Grant minimal S3 permissions first.Rilavek needs minimal, write-focused actions — nothing more.
Rilavek Dashboard · Data Stores > New S3 Data Store

Add New Data Store

S3 Compatible
Axis Surveillance Storage
https://<account_id>.r2.cloudflarestorage.com
AKIAIOSFODNN7EXAMPLE
••••••••••••••••••••••••••••••••
cctv-axis-recordings
Automatically executes multipart write-probe test before saving.Save Data Store
Fig 1: Add New S3 Data Store configuration in the Rilavek console.
03

Create a Camera Sender in Rilavek

Go to Senders in the Rilavek sidebar and click New Sender. A Sender represents the hardware identity of your Axis M3068-P 12MP 360° Panoramic Dome and generates a dedicated device-level password.

Rilavek Dashboard · Senders > Create New Sender Modal

Create New Sender

Axis M3068-P 12MP 360° Panoramic Dome
cam_m3068p

Must be at least 6 characters, lowercase, start with a letter/underscore, and contain only letters, numbers, hyphens, or underscores.

security@axis-cctv.local

Secure credentials will be automatically generated for this sender.

CancelCreate Sender
Fig 2: Create New Sender modal assigning dedicated camera hardware identity.
Rilavek Dashboard · Senders > Generated Device Credentials

Sender Credentials

Make sure to copy your password now as you will not be able to see it again.
Username
cam_m3068p
PasswordSave for Step 5
••••••••••••
Done
Fig 3: Generated device-level username and one-time password for camera authentication.
04

Create & Configure Your Ingestion Pipe in Rilavek

Go to Pipes in the sidebar and click Create Pipe. Configure the 4 core sections of your pipeline: General (Pipe ID), Inputs (FTP), Access Control (Sender permission), and Destinations (Data Store).

1General Settings (Pipe ID)

Every pipeline in Rilavek is assigned an immutable, globally unique Pipe ID (e.g. p_cctv9x). This ID acts as an isolated ingestion channel that segregates audit logs, real-time transfer metrics, and storage routing. It also forms the second half of your scoped camera FTP login username (username@p_cctv9x).

Rilavek Dashboard · Pipes > Pipeline Settings > General

Pipe ID

p_cctv9x

Use this ID to identify this pipe in logs. Combine it with the sender username for complete authentication details.

Fig 4: General settings displaying the unique Pipe ID used for authentication.

2Inputs (FTP / FTPS Ingress)

The Inputs configuration defines how camera files enter Rilavek. Enabling the FTP Ingress input provides a persistent, high-availability ingestion server (ftp.rilavek.com) compatible with active and passive FTP modes, explicit TLS negotiation, and standard CCTV firmware video push routines.

Rilavek Dashboard · Pipes > Pipeline Settings > Inputs

Inputs

Enable inputs to receive data.

1 input enabled
FTP
SFTP

FTP Ingress

Endpoint enabled. Connect using your Sender credentials.

Host
ftp.rilavek.com
Port
21
Username
<sender>@p_cctv9x

Example: cam_m3068p@p_cctv9x

Password
••••••••••••

Use the password configured for the specific Sender.

Fig 5: Enabling the FTP Ingress endpoint for incoming surveillance video streams.

3Access Control (Sender Authorization)

Access Control prevents unauthorized uploads by enforcing a zero-trust boundary on the ingestion pipe. Only explicitly authorized Senders (such as Axis M3068-P 12MP 360° Panoramic Dome) can authenticate and stream video into this pipe. Any requests with unassigned credentials are rejected at the network edge.

Rilavek Dashboard · Pipes > Pipeline Settings > Access Control

Access Control

Restricts who can upload to this pipe.

1 sender allowed
1Individuals
Groups

Individual Senders

Grant or revoke pipe access for specific individual senders.

Axis M3068-P 12MP 360° Panoramic Dome
cam_m3068p@p_cctv9x
Fig 6: Restricting pipeline ingress access to your authorized camera Sender.

4Destinations (Target Cloud Storage Routing)

The Destinations section routes video clips to your target cloud storage provider. Linking your configured Data Store routes all received footage directly to your Cloudflare R2 bucket (cctv-axis-recordings). Video files are committed on-the-fly via parallel multipart S3 PUTs without intermediate disk caching.

Rilavek Dashboard · Pipes > Pipeline Settings > Destinations

Destinations

This is where we send your files to.

1 destination added
Axis Storage (Cloudflare R2)
Primary
Target Bucketcctv-axis-recordingsProviderCloudflare R2StatusActive (Ready for camera ingress)
Fig 7: Routing incoming camera footage directly into your S3-compatible cloud bucket.
Camera Connection Parameters (Enter in Step 5):Reference Values
Server Hostftp.rilavek.com
Port21
Usernamecam_m3068p@p_cctv9x
05

Configure FTP, Motion Detection & Linkage Method in Axis M3068-P 12MP 360° Panoramic Dome Firmware

Open your camera's web configuration page in your browser at its local LAN IP address and complete the steps below:

Step 5AConfigure FTP Streaming Credentials

Click System > Events > Recipients (Add FTP / SFTP).

Navigate to Events > Recipients and click 'Add...' to open the Recipient Setup dialog. Name the recipient 'Recipient_FTP', set Type to 'FTP', enter your Rilavek Ingestion Host, port 21, scoped username, and device password. Ensure 'Use passive mode' is checked as indicated below.

AXIS COMMUNICATIONS
AXIS M3068-P Network Camera

Recipients

?
Recipients List
NameTypeAddressUpload pathUser name
Recipient_FTPFTPftp.rilavek.com/axis-panoramic/cam_m3068p@p_cctv9x
1 recipient configured
Recipient Setup
?
Rilavek Ingestion Gateway: Direct S3 gateway endpoint for your Cloudflare R2 bucket.
Login Credentials
Scoped Rilavek User: cam_m3068p@p_cctv9x (Sender@Pipe).
The FTP password associated with the camera license (Device password from Step 3)
Advanced Settings
Test
Test the connection to the specified FTP server S3 Ingestion Gateway verified

Step 5BConfigure Action Rule Trigger (VMD 4 / Motion Analytics)

Click Events > Action Rules > Add.

Navigate to Events > Action Rules and click 'Add...'. Check 'Enable rule', name it 'FTP_Motion_Upload', and configure Condition > Trigger to 'Applications' with 'VMD 4: Any Profile' (Axis Video Motion Detection) so camera recording triggers on motion.

AXIS COMMUNICATIONS
AXIS M3068-P Network Camera

Action Rules

?
Action Rule List
NameTriggerScheduleActionRecipient
SFTP-Upload
Time - RecurrenceContinuous-UploadingSend Video ClipSFTP: ftp.cameraftp.com
1 action rule configured
Action Rule Setup
?
General
Condition
Start condition only
Active:
Yes
No
Axis Motion Trigger: Uses VMD 4 (Video Motion Detection) application profile so recording triggers only on detected movement.
Additional conditions
None
Wait at leastbefore re-running the rule (max 23:59:59)

Step 5CLink Action Rule to FTP Recipient (Image & Video Upload)

Click Events > Action Rules > Actions.

Under Actions in the Action Rule Setup dialog, set Type to 'Send Images' (or 'Send Video Clip'), configure Stream profile and frequency, select 'Recipient_FTP' as Recipient, and check 'Add date/time suffix' for Base file name. Click OK to start streaming.

AXIS COMMUNICATIONS
AXIS M3068-P Network Camera
Action Rule Setup
?
Actions
frame(s) per
Pre-trigger timesecond(s)
While the rule is active
Post-trigger timesecond(s)
Send only the firstimages
Add date/time suffix
Add sequence number suffix (no maximum value)
Add sequence number suffix up to 10 and then start over
Overwrite/Use own file format.
*See help for more information
Action Linkage: Streams motion events directly into your Cloudflare R2 storage bucket with UTC timestamps.

Axis Firmware Notes & Best Practices

Model-specific nuances, recommended settings, and verified workarounds for the M3068-P

AXIS Recipient Action Rulesinfo

Axis cameras use an Event / Recipient architecture. You create Rilavek as a 'Recipient', then attach an 'Action Rule'.

Recommendation:Go to System > Events > Recipients to add ftp.rilavek.com, then create an Action Rule with trigger 'Motion' and action 'Send video stream to recipient'.
06

Verify Ingestion

Click Test in your camera's FTP settings or trigger a test recording transfer. In your Rilavek dashboard, navigate to Pipes > your pipeline > Transfers tab to inspect incoming files as video clips stream into Cloudflare R2.

Rilavek Dashboard · Pipes > Transfers
Overview
Transfers
Refresh
FILESENDERSIZEDATESTATE
axis/m3068-p/2026-09-10/ch01_143000.mp4
cam_m3068p18.4 MBSep 10, 14:30
Success
axis/m3068-p/2026-09-10/ch01_142500.mp4
cam_m3068p21.2 MBSep 10, 14:25
Success
axis/m3068-p/2026-09-10/ch01_142000.mp4
cam_m3068p19.7 MBSep 10, 14:20
Success
Showing 3 of 3 transfers
Fig 8: Transfers log confirming incoming camera recordings streaming directly into cloud storage.
Direct S3 Ingest VerifiedIncoming surveillance streams are committed on-the-fly directly to your Cloudflare R2 bucket with zero local buffering and no intermediate disk storage.

Common questions

Does the Axis M3068-P 12MP 360° Panoramic Dome require an on-site NVR to stream to Cloudflare R2?

No. The Axis M3068-P 12MP 360° Panoramic Dome has built-in FTP client firmware. It connects directly to Rilavek's cloud bridge on port 21, streaming video chunks into your Cloudflare R2 bucket without requiring a local NVR or PC.

How does retention work on Cloudflare R2?

You define exact retention policies (e.g. 30, 90, or 365 days) directly in your Cloudflare R2 bucket using standard S3 Lifecycle expiration rules. Footage is never auto-overwritten by proprietary cloud caps.

What happens if my internet connection drops?

If your M3068-P has a local MicroSD card installed, it records motion events locally and retries the FTP upload once connectivity is restored.

Stream Axis M3068-P 12MP 360° Panoramic Dome to Cloudflare R2

Create your free Rilavek ingestion pipe in seconds. No NVR hardware, no proprietary camera cloud subscriptions, and 100% data ownership in your private storage bucket.

Free plan includes 10GB of transfer. No credit card required.