This policy covers the BerserkOS web application (app.goberserk.no) and the BerserkOS Fleet mobile app for iOS and Android (bundle no.goberserk.tracker, earlier published as BerserkTracker). Together they are referred to as “BerserkOS”. BerserkOS is an operations platform for cruise ports. Each port runs its own, separated BerserkOS environment (“tenant”), and the people whose data is processed are the port’s own staff, guides and drivers, the ship agents and cruise-line contacts the port works with, and passengers only to the extent an agent or cruise line sends passenger information to the port.
1. Who is responsible for your data
Data controller: the port that runs BerserkOS. The port organisation whose BerserkOS environment you use (your employer, or the port you work for or correspond with) decides why and how personal data is processed, and is the data controller under the GDPR. The port you belong to is shown inside the application. Its contact details are available from the port.
For the port of Skjolden, the controller is:
Skjolden Cruisekai AS, org. no. 984 177 739
Sørsidevegen 35, 6876 Skjolden, Norway
Contact: [email protected]
Data processor: Remedy Media AS. The BerserkOS platform is owned and operated, under the Berserk brand, by:
Remedy Media AS, org. no. 919 697 644
c/o Jan Erik Hagen, Haga bru 50, 3533 Tyristrand, Norway
Contact: [email protected]
Remedy Media AS processes personal data only on the port’s documented instructions and under a data processing agreement (GDPR Article 28). It does not use your personal data for its own purposes. Any statistics across ports are aggregated and anonymised before use.
App publisher. The BerserkOS Fleet mobile app is published in the App Store and Google Play by Time To Go Berserk AS, org. no. 925 950 726, Sørsidevegen 35, 6876 Skjolden, Norway, a company related to Remedy Media AS. Time To Go Berserk AS holds the developer accounts on behalf of the platform operator and has no independent purposes for your personal data.
2. Data we process
- Port staff and managers (web application): name, e-mail address, role and port membership; login events, multi-factor enrolment and session data; and an audit trail of actions in the system (user, e-mail, IP address, time and what was changed).
- Guides and drivers (mobile app and rosters): name, phone number, e-mail address, role, languages, certifications, driver-card number, assigned vehicle, shift and tour assignments, availability replies, push-notification token, device platform and app version, battery level, and location data while on duty (section 2a).
- Ship agents, cruise-line and supplier contacts: name, e-mail address, phone number, company, and the e-mails and attachments exchanged with the port’s mailboxes (booking requests, tour lists, bus lists, passenger counts). Attachments may include passenger-related information the cruise line or agent chooses to send, such as nationality lists or accessibility needs. It is used only to deliver the port call.
- Messages: WhatsApp messages exchanged with the port’s dispatch number (phone number and content) and SMS links sent to guides who do not use the app.
- Online ticket buyers (only where a port sells tickets online): name, e-mail address, order and payment reference. Card details are entered directly with the payment provider and never stored in BerserkOS.
- Technical data: server and error logs with IP address, request path and time.
- Vessel data from AIS (ship position, speed, destination) is data about ships, not about people.
2a. Location data in the mobile app (background location)
- What is collected: GPS position (latitude and longitude), accuracy, speed, heading, battery level and the time the position was captured. The app also reads altitude but the server does not store it.
- When: only while you are on duty in the app. Sharing starts when you tap “Gå på vakt” (go on duty) or “Start tur” (start tour) and accept the in-app disclosure (“Start tur — del lokasjon?”), which is shown before the system location permission is requested. It continues in the background, with the screen off or the app closed, until you tap “Avslutt tur” (end tour) or “Gå av vakt” (go off duty), until the system registers your tour as completed on return to the pier, two hours after the day’s last all-aboard time, or when the server closes a shift that has been silent for more than twelve hours. A background wake-up about every fifteen minutes restarts sharing if the operating system stopped it while you are still on duty.
- How often: about one position every ten seconds while sharing is active (never more often than every eight seconds). Positions captured without network coverage are queued on the device and sent when coverage returns.
- Why: so the port’s dispatch and sales staff can see where each bus and guide is during a port call, detect delays, register departure from and return to the pier automatically, and call guides back when needed; and so the port can reconstruct a tour afterwards, learn realistic route timings for planning, and document what happened if an incident occurs.
- How it is stored: positions are sent over TLS to the platform database (Supabase, AWS eu-central-1, Frankfurt). Two things are stored: your latest position on your personnel record and on your vehicle, which is overwritten with every update and drives the live map; and a position history (table
personnel_gps_pings) that keeps every accepted position, tagged with the tour it belonged to. - Who can see it: users with an active membership at your port (dispatch, operations and management roles) in the BerserkOS web application. Every read is scoped to the port by row-level security. Other ports cannot see it.
- Sharing: location data is not sold, not shared with advertisers and not used for analytics or profiling. It is handled only by the hosting and database providers listed in section 4.
- Retention: the latest position is overwritten on every update. The position history is kept for as long as your personnel record exists at the port and is deleted together with it. There is currently no automatic time-based deletion of the history; the port, as controller, decides the retention period and can have your history deleted on request (section 6).
- Your control: you can stop sharing at any time in the app, or withdraw the location permission in your device settings, which stops sharing immediately. You can ask the port or the platform operator to export or delete your location history.
- Note on the in-app dialog: the dialog is an information step required by the app stores. When you use the app as an employee or contractor, the legal basis for the processing is described in section 3, not your tap on the dialog.
3. Why we process your data and on what legal basis
- Running the port call (dispatch, rosters, tour assignments, agent and cruise-line correspondence, capacity replies, vehicle and guide coordination): performance of the employment or service contract with you (GDPR Article 6(1)(b)), and the port’s legitimate interest in running its operations safely and efficiently (Article 6(1)(f)).
- Location sharing by guides and drivers: the port’s legitimate interest in coordinating buses and guests during a port call (Article 6(1)(f)). In an employment relationship this is also a control measure under the Norwegian Working Environment Act chapter 9; the port informs and consults its employees before it is used, and the data is not used to monitor individual performance.
- Security and compliance: legal obligations the port has under the ISPS Code and Norwegian port security, accounting and working-time rules (Article 6(1)(c)), and the audit trail needed to prove what was booked and confirmed.
- Security of the platform (authentication, rate limiting, audit log, backups): legitimate interest (Article 6(1)(f)).
- Consent is used only where we ask for it separately. BerserkOS does not send marketing.
4. Where your data is processed and by whom
Remedy Media AS engages the following providers as sub-processors on behalf of the port. All of them process data under a contract that limits use to our instructions, with EU standard contractual clauses where data leaves the EEA.
| Provider | Purpose | Location |
|---|
| Supabase | Database, authentication and file storage | AWS eu-central-1 (Frankfurt, Germany) |
| Hetzner Online GmbH | Application servers and daily backups | Nuremberg, Germany |
| Cloudflare | DNS, TLS, tunnel and web application firewall in front of the application | Global edge network (EU/US) |
| Microsoft | Microsoft 365 mailboxes read via the Graph API, for ports whose e-mail runs on Microsoft 365 | EU |
| Google (Gemini API) | Reading and classifying booking e-mails and attachments, drafting replies | EU/US |
| xAI (Grok API) | Parsing documents and attachments | US |
| Anthropic (Claude API) | Text analysis and drafting in assistant functions | US |
| OpenAI (Whisper API) | Speech-to-text for voice input, only in browsers without built-in speech recognition | US |
| Expo | Push notifications and app updates for the mobile app | US |
| Twilio | SMS with roster links to guides who do not use the app | EU/US |
| Resend | Transactional e-mail (roster links, notifications) | US |
| Stripe | Online ticket payments, where a port sells tickets online; card details go directly to Stripe | EU/US |
When e-mails or attachments are sent to an AI provider, only the content needed for the task is sent, and we do not use personal data to train models. Other services used by the platform do not receive personal data: BarentsWatch (vessel AIS data), ElevenLabs (audio guides) and Perplexity (market research). WhatsApp (Meta) is a messaging channel the port itself uses; messages exchanged with the port’s dispatch number are stored in BerserkOS as described in section 2.
5. How long we keep your data
- Latest position: overwritten with every update.
- Position history: as long as the personnel record exists at the port; deleted with the record. No automatic time limit today; the port sets the retention period (section 2a).
- Personnel records: when a guide or driver is deactivated, the record is marked as deleted and hidden from daily use. It is removed permanently when the port decides or when you ask for it, subject to legal retention duties.
- E-mails, attachments and bookings: for as long as the port uses BerserkOS, because they document what was booked, confirmed and delivered.
- Audit log: write-once; kept for as long as the port uses BerserkOS. There is no automatic deletion today.
- Web accounts: when an account is deleted, its memberships and consent records are removed, its audit-log entries are anonymised, and the account is disabled with the e-mail address replaced.
- Database backups: taken daily on the production server and deleted after seven days.
- Authentication logs: held by Supabase in line with its log-retention terms for our subscription.
6. Your rights
Under the GDPR and the Norwegian Personal Data Act you have the right to access your personal data, to have it corrected or deleted, to restrict or object to processing, and to receive the data you have provided in a machine-readable format. Requests go to the port (the controller) or to the platform operator at [email protected], which will forward them to the port. Guides and drivers can correct their own profile in the mobile app. We answer within thirty days.
7. Security
- All traffic is encrypted in transit (TLS).
- Row-level security in the database scopes every read and write to the port the user belongs to, on every table that holds personal data.
- Multi-factor authentication with an authenticator app (TOTP) is mandatory for admin, dispatch, manager, PFSO, shorex and transport-manager roles. Login is by magic link or password, and login attempts are rate-limited.
- Mobile-app PIN codes are stored hashed; access tokens are kept in the device keychain or keystore, never in plain storage.
- The audit log is write-once and cannot be edited or deleted by users.
- Application containers run read-only with dropped privileges; the database is not exposed to the internet beyond the provider’s authenticated endpoint.
- Daily database backups with a scripted restore procedure.
8. Children
BerserkOS is a workplace system and is not intended for anyone under eighteen.
9. Complaints
If you believe your data is processed unlawfully, contact the port or [email protected] first. You also have the right to complain to the Norwegian Data Protection Authority (Datatilsynet): www.datatilsynet.no
10. Changes to this policy
We may update this policy. Significant changes are announced by e-mail or in the application. The “Last updated” date at the top shows the most recent revision.