Privacy Policy
Version 2026-10-27 · effective October 27, 2026 · compliant with the Brazilian General Data Protection Law (Law No. 13,709/2018, “LGPD”), with additions for the GDPR (section 13) · Versão em português
Summary: we collect the minimum you need to sign in and use MacDocker — the e-mail and name that GitHub, Google or Apple give us, what you answer at sign-up and the usage records of your jobs. We do not store passwords, do not use tracking cookies or advertising, do not sell data and do not use your code to train AI. Your data stays on a server of ours, in Brazil. You may ask for access, correction or deletion at any time.
- Who the controller is
- Data we process
- Purposes and legal bases
- Who we share it with
- Where the data is kept
- How long we keep it
- Cookies
- Security
- Your rights
- Children and teenagers
- Changes
- Personal data in your Content
- Users in the European Union and the United Kingdom (GDPR)
- Contact and data protection officer
1. Who the controller is
The controller of the personal data processed in MacDocker is LEANDRO ATAÍDE FORTE, an individual residing in São José de Ribamar, Maranhão, Brazil (“we”, “us”). Our tax ID (CPF) and full address are not published here, to protect the data holder against fraud and scams; they are provided to account holders, to the ANPD (Brazilian data protection authority) and to other competent authorities that request them at contact@macdocker.com. This policy applies to the MacDocker website, dashboard, API and command-line tool.
2. Data we process
| Category | Data | Where it comes from |
|---|---|---|
| Identification | Verified e-mail, name, profile picture address and which provider you used (GitHub, Google or Apple). With Apple’s “Hide My Email”, we receive the relay address, not your real e-mail. | The sign-in provider, with your authorization. From GitHub we request only the public profile and e-mails (read:user, user:email). |
| Sign-up | Access type requested (beta, trial or plan), chosen plan, name, company or project, what you intend to run, how you heard about MacDocker and the optional message. Version and date of your acceptance of these documents. | You, in the sign-up form. Only the access type and the acceptance are mandatory. |
| Account | Account status, preferred language (English or Portuguese), sign-up, activation, expiry and last-access dates, history of requests and of administration decisions, internal team notes. | Generated by the Service. |
| Usage | For each job: account, name, image, app or script name, creation, start and end dates, duration, CPU time, peak memory, processes, exit code and reason for termination. Sum of usage time per period. Account events (images added, builds, tokens created). | Generated by the Service. |
| Job content | Project .zip files, scripts, generated files and packages. Signing certificates, passwords, provisioning profiles and ExportOptions.plist, if you upload them. | You, when you submit a job. |
| Inference mode | The prompts you send to the language models and the generated answers, only in the memory of your account’s model server while it is running (they are not written to disk or to logs). From each request we keep the model, the date and the count of tokens sent and generated, summed per month. | You, through the dashboard playground or the API. |
| Payment | Plan purchased, amount, currency, subscription status (active, overdue, cancelled), end of the paid period, extra minutes bought, and the codes Stripe uses to identify you and the subscription. Card number, expiry date and CVC are typed on Stripe’s page and never reach us. | You, when you pay, and Stripe, which tells us the result. |
| E-mail notices | Your e-mail, the type of notice (trial welcome, request received, approval, refusal, eve of and end of the access period, extension, suspension and reactivation), the date and whether delivery succeeded. For refusals and suspensions, the reason our team writes, if any. The notice of a new request that our team receives carries what you filled in at sign-up (name, e-mail, company or project, what you intend to run, how you heard about MacDocker and the message). | Generated by the Service from your sign-up and from team decisions. |
| Technical records | IP address, date and time, address accessed and browser (web server access logs), and the node’s audit record: which account used which service user, in which container and when. | Generated automatically when you use the Service. |
| API tokens | Token name, prefix, creation and last-use dates. The token itself is stored only as a hash (SHA-256). | You, when you create the token. |
We do not collect sensitive data (art. 5, II, of the LGPD; special categories under art. 9 of the GDPR) and ask you not to put it in job content. We do not read job content in the normal course of operations: it is processed automatically to carry out what you asked.
3. Purposes and legal bases
| Purpose | Legal basis (LGPD, art. 7) |
|---|---|
| Create and maintain your account, authenticate sign-in, apply the access type, period and quotas | Performance of a contract (item V) |
| Run jobs and return the results; sign the build with your certificate | Performance of a contract (item V) |
| Assess beta access requests and organize the plans waiting list | Preliminary procedures to a contract, at your request (item V) |
| Notify you by e-mail, from the contact@macdocker.com mailbox, about your account: trial welcome, request received, approved or declined, notice that the period is ending, end of the period, extension, suspension and reactivation | Performance of a contract and preliminary procedures to a contract, at your request (item V) |
| Notify our team (the administrators and the contact mailbox) of each new sign-up or request, to assess it | Preliminary procedures to a contract, at your request (item V) |
| Measure usage time and charge for subscriptions and extra minutes; grant or end access according to payment | Performance of a contract (item V) |
| Keep charge records for the period of fiscal and tax obligations | Compliance with a legal or regulatory obligation (item II) |
| Security, fraud and abuse prevention (for example, repeated trials), auditing and incident investigation | Legitimate interest (item IX) and regular exercise of rights (item VI) |
| Keep application access logs | Compliance with a legal obligation (item II): Brazilian Civil Rights Framework for the Internet, art. 15 |
| Understand where users come from and what they want to run, to improve the Service (optional sign-up fields) | Consent (item I), which you may withdraw |
We do not profile for advertising, do not make decisions based solely on automated processing about you (beta approval is done by a person) and do not use your content to train AI models.
4. Who we share it with
We do not sell or rent personal data. We share only what is necessary with:
- Sign-in providers — GitHub (Microsoft), Google and Apple: when you sign in, you are redirected to them and they return your identity to us. Their processing follows each one’s privacy policy.
- Website and e-mail hosting (Hostinger) — provides the contact@macdocker.com mailbox, from which the notices described above are sent and where replies and team notices arrive; hosts the marketing website and receives, every day, an encrypted backup copy of the accounts database and of the API tokens (hashes only). Encryption is done on our server before sending and the key to decrypt is not at the host: it holds files it cannot read. Like any host, it records access to the website’s pages (IP address, date, time and pages accessed), according to its own policy.
- Stripe — processes payments for subscriptions and extra minutes: receives your e-mail, the plan and the card details (which you type only on its page), keeps the invoices and sends the receipts. Stripe treats this data as a controller for card data and fraud prevention, and as our processor for the rest, and may process it outside Brazil (United States and other countries), under the international transfer safeguards described in its policy.
- Authorities, where there is a court order, a legal requisition or to protect our rights and those of third parties.
- Successors, in the event of a sale or transfer of the Service, with the same safeguards as this policy.
Our DNS provider (the same Hostinger) and the HTTPS certificate authority do not receive users’ personal data. Job content does not leave our server: none of the suppliers above receives it. This list is also the list of sub-processors that we offer in a data processing agreement (section 12). If in the future we engage other suppliers that process your data, this policy will be updated beforehand.
5. Where the data is kept
The Service runs on computers of ours, located in Brazil. The account and the records are kept on the server’s internal disk; job content is kept on a separate external volume of the same server. These disks do not have volume encryption (FileVault). We chose to leave it off so that the server comes back on its own after a power outage, without someone typing a disk password. The Apple Silicon internal disk is encrypted by hardware, which protects against removing the SSD from the Mac, but not against someone with access to the running Mac; the external job volume is not encrypted. We compensate with the measures in section 8 (server under our physical control, isolated service accounts, restricted permissions, encrypted off-site copies and deletion of content after 30 days). A daily encrypted backup copy is also kept at the website host (Hostinger), whose servers may be outside Brazil (international transfer, art. 33 of the LGPD); since the decryption key stays only with us, the content is not readable by it. Sign-in providers may process authentication data outside Brazil, under art. 33 of the LGPD and their own policies.
6. How long we keep it
| Data | Period |
|---|---|
| Containers, generated files and packages | 30 days from each job; then deleted. |
| Signing certificates, passwords and profiles | Only during the job: deleted at its end, whether it succeeds or fails. |
| Account events (Logs tab) | 30 days. |
| Inference mode prompts and answers | Only while your account’s model server is running (it shuts down by itself after a few minutes without requests); never written to disk. |
| Inference mode token counts | While the account exists, for billing and the quota; deleted with it. |
| Account and sign-up data | While the account exists. Accounts with no access for more than 12 months may be deleted by us. You may ask for deletion at any time (section 9). |
| Application access records (IP, date and time) | At least 6 months, as art. 15 of the Brazilian Civil Rights Framework for the Internet requires, and then discarded. |
| Sum of usage time per job and node audit | Kept even after the account is deleted, for as long as needed for billing, compliance with legal obligations and defense in proceedings (art. 16, I and II, of the LGPD), for at most 5 years; anything beyond that is discarded. The audit is append-only and chained, so that it cannot be tampered with; it holds identifiers (account, service user and container) and dates, never job content. |
| E-mail notice queue | 30 days after sending or discarding; a notice that cannot be sent is discarded after 7 days. Deleting your account removes its notices from the queue. |
| E-mails already sent or received in the contact@macdocker.com mailbox | Stay in the mailbox as long as needed; you may ask for those that concern you to be deleted, through the contact e-mail itself. |
| Backups of the accounts database and API tokens (hashes only) | One per day, kept for 30 days on a second disk of the server itself, accessible only to the MacDocker service, and an encrypted copy of each day at the website host, also for 30 days. A deleted account disappears from new backups immediately and from old ones (local and at the host) at the end of those 30 days. |
| Payment data (mirror here and records at Stripe) | The mirror of the subscription and of the minutes bought stays in our database while the account exists and is deleted with it (deletion is only done after the subscription is cancelled). The charge records at Stripe and in our accounting are kept for the period of fiscal and tax obligations (generally 5 years). |
| Preventing repeated trials | When an account is deleted, we keep only a hash (cryptographic digest) of the e-mail, which does not allow it to be recovered, to prevent a new trial. |
7. Cookies
We use two cookies, both strictly necessary for what you ask for, and neither identifies you for any other purpose:
macdocker_sessionkeeps you signed in: it lasts up to 7 days, cannot be read by scripts (HttpOnly) and travels only over HTTPS.mdk_langstores the language you chose (English or Portuguese), for up to 1 year, and is only set when you switch language. It contains no personal data.
We do not use analytics, advertising or third-party cookies, and MacDocker pages do not load trackers. Because they are necessary for the service to work, these cookies do not depend on consent.
8. Security
- HTTPS connections; passwordless sign-in through the provider, with a verified e-mail.
- Each job runs isolated: macOS sandbox, dedicated service user, no network while it runs and with resource limits. The web server does not open job files.
- API tokens stored only as hashes; account data readable only by the server’s service account; off-site copies encrypted before leaving the server, with the key kept outside it. The server’s disk does not have volume encryption (section 5); for that reason the server is kept under our physical control and the service keys are replaced if it is lost or stolen.
- Administrative access restricted to a few people, with every action logged.
No system is completely secure. In the event of a security incident that may cause relevant risk or harm, we will notify you and the Brazilian National Data Protection Authority (ANPD), as art. 48 of the LGPD requires, and the competent data protection authority where the GDPR applies (section 13).
9. Your rights
Under art. 18 of the LGPD, you may request, at any time and free of charge:
- confirmation that we process your data and access to it;
- correction of incomplete, inaccurate or outdated data;
- anonymization, blocking or deletion of unnecessary or excessive data or data processed in violation of the law;
- data portability;
- deletion of data processed on the basis of consent and withdrawal of that consent;
- information about whom we share data with and about the possibility of refusing consent and its consequences;
- objection to processing based on legitimate interest, where applicable;
- deletion of the account: we delete the account, containers, files, tokens and events, keeping only what section 6 provides.
To exercise these rights, write to contact@macdocker.com from your account e-mail. We will reply within 15 days. You may also complain to the ANPD (gov.br/anpd).
10. Children and teenagers
MacDocker is intended for people over 18. We do not knowingly collect data from children and teenagers. If we learn that this has happened, we will delete the account.
11. Changes
We may update this policy. The version in force is always on this page, with its date. Relevant changes will be announced in the dashboard or by e-mail before they take effect.
12. Personal data in your Content
Your projects, scripts, files and inference mode prompts (the “Content”) may contain personal data of third parties, such as users of your apps or training datasets. For that data, you are the controller (or processor, if you act on behalf of another person or company) and we are processors:
- we process the Content only to run the job you asked for and return the result, following your instructions; we do not read it, use it for any other purpose or use it to train models;
- each job runs isolated (section 8) and the Content is deleted after 30 days (section 6); inference mode prompts are not even written down; no supplier in section 4 receives it, and neither do the authors of the language models (the models run on our server);
- we notify you without delay if a security incident affects your Content, and help, as far as possible, to respond to data subject requests and to authorities;
- you are responsible for having a legal basis to process that data, for not uploading sensitive personal data or children’s data unnecessarily and for informing data subjects as the law requires.
If your company or the GDPR requires a written data processing agreement (art. 28 of the GDPR; art. 39 of the LGPD), we offer a template: ask at contact@macdocker.com.
13. Users in the European Union and the United Kingdom (GDPR)
MacDocker is headquartered in Brazil and is offered, initially, to the international market, including people in the European Union, the European Economic Area and the United Kingdom. For that reason, besides the LGPD, Regulation (EU) 2016/679 (GDPR) or its UK version may apply to the processing of your data, and these additions also apply. For now we have no designated representative in those territories; contact us directly at the e-mail in section 14:
- Legal bases. Those in section 3 correspond to those of art. 6 of the GDPR: performance of a contract (6(1)(b)), legal obligation (6(1)(c)), legitimate interests in security and fraud prevention (6(1)(f)) and consent for the optional sign-up fields (6(1)(a)), which you may withdraw at any time.
- Rights. Besides those in section 9, you may ask for restriction of processing and object to it (arts. 15 to 22 of the GDPR). We keep the 15-day deadline of section 9 and, in any case, reply within 1 month at most. You may complain to the data protection authority of your country.
- Transfer. Data is processed in Brazil. For data coming from the EU, we apply the chapter V GDPR mechanism that is available — an adequacy decision, when there is one, or the European Commission’s standard contractual clauses (Decision 2021/914), which we include in the data processing agreement on request.
- Incidents. Where the GDPR applies, we notify the competent authority within 72 hours of becoming aware of a breach that creates risk, and you, if the risk is high.
- Automated decisions and profiling. We do not make decisions based solely on automated processing with a relevant effect on you and we do not profile (section 3).
- Cookies. Only the strictly necessary cookies of section 7, exempt from consent under the ePrivacy directive.
14. Contact and data protection officer
Beware of scams: MacDocker’s only contact channel is the e-mail below. We do not ask for passwords (sign-in is through GitHub, Google or Apple), verification codes or card details by e-mail or message; be suspicious of anyone who does.
Data protection officer (DPO): LEANDRO ATAÍDE FORTE — contact@macdocker.com.