Compare commits

...

210 Commits

Author SHA1 Message Date
Inex Code c4e5d44b8e Merge pull request 'fix/inex-ui' (#193) from fix/inex-ui into master 1 day ago
Inex Code dc05bd9e99 Merge pull request 'build(ios): Fix ios builds' (#192) from fix/ios into master 1 day ago
Inex Code cd552616bd docs(changelog): Add localizations to changelog 1 day ago
Inex Code 1bde176612 feat(translations): Activate support for some languages 3 days ago
Inex Code c271331f29 refactor(ui): Remove SafeArea where they are not needed 3 days ago
Inex Code 80547785d3 refactor(ui): Change the styling of "Server is not ready" card 3 days ago
Inex Code 44553eaf85 fix(ui): Add a title to setup wizard 3 days ago
Inex Code c8bc75d422 fix(ui): Make onboarding screen more adaptive 3 days ago
Inex Code e186dac39f fix(ui): Deduplicated launch_url functions 3 days ago
Inex Code 2cd564c38d build(ios): Fix ios builds 3 days ago
NaiJi ✨ 42b9de656c chore: Merge recovery-fix into master 6 days ago
NaiJi ✨ 4548620f0a chore: Merge services-urls into master 6 days ago
NaiJi ✨ 9929cdd1a3 fix: Remove double protocol on opening a service link 6 days ago
NaiJi ✨ 9cbe3b2abb fix: Improve dns checking on recovery 6 days ago
Inex Code 4e1659cfdc Updated translations 2023-01-24 (#189) 1 week ago
Inex Code ad3b0380ea Merge pull request 'chore(translations): Add languages to md files' (#186) from new-translations into master 2 weeks ago
Inex Code f06ad3bf9c chore(translations): Add languages to md files 2 weeks ago
Inex Code 4ee93bf03c Merge pull request 'Include *.aab in Release Stage' (#185) from include-aab into master 2 weeks ago
Alya Sirko 439b079c09 Include AABs in Release Stage 3 weeks ago
Inex Code fe8a7cf9ac Merge pull request 'Try to fix CI pipeline' (#183) from fix-ci into master 3 weeks ago
Alya Sirko 90b1cc67e4 typo 3 weeks ago
Alya Sirko 7d2b474210 try to fix pipeline 3 weeks ago
Inex Code b0c0805402 Merge pull request 'ci: Enable AAB generation' (#159) from release-party into master 1 month ago
Inex Code 4ed0ffb846 ci: Enable AAB generation 1 month ago
NaiJi ✨ 9dbe79ed73 Merge pull request 'docs: Add Digital Ocean how-to markdown and privacy policy' (#158) from release-party into master 1 month ago
NaiJi ✨ e0c04468bc Merge branch 'master' into release-party 1 month ago
Inex Code d1c4aa9fc6 feat(about): Add privacy policy and licenses 1 month ago
NaiJi ✨ 12de989df6 docs: Add Digital Ocean how-to markdown 1 month ago
Inex Code dcb265b9f4 Merge pull request 'New Year release party 🎄🎉 (SP 0.8.0)' (#157) from release-party into master 1 month ago
Inex Code 2fb9932eb6 chore: Bump version 1 month ago
Inex Code 53fc0d4d28 chore: Disable staging ACME 1 month ago
Inex Code bbb1d55b64 feat(services): Sort the services by their status 1 month ago
Inex Code 5f311ee907 feat(logging): Add limit to log console 1 month ago
Inex Code e2a9493b61 fix(jobs): Make jobs panel take less space 1 month ago
Inex Code 3feb5acf71 style: Linting 1 month ago
Inex Code 48446ab3d5 fix(charts): Temporary fix for Hetzner CPU chart 1 month ago
NaiJi ✨ 6950e32558 docs(translations): Translate new assets to Russian 1 month ago
Inex Code b007fec75b refactor(initializing): Refresh the server istallation UI 1 month ago
Inex Code 040de69268 docs(translations): Add translations to use this domain screen 1 month ago
Inex Code a750fa2eeb fix(translations): typo 1 month ago
Inex Code 72969ec1eb fix(Incorrect translation keys): 1 month ago
NaiJi ✨ 41340f2026 docs: Add server type assets 1 month ago
NaiJi ✨ 979e8dd908 docs: Add select provider notice 1 month ago
NaiJi ✨ 3fad05c8d5 docs: Add english text for new installation process 1 month ago
Inex Code fc3d78662e refactor(theming): Remove gtk and win plugins for color extraction 1 month ago
Inex Code e342727181 refactor(services): Remove services switch on services screen cards 1 month ago
NaiJi ✨ f24137cd98 docs: Implement new basic onboading translations 1 month ago
NaiJi ✨ 86cd12803a chore: Merge deletion-error into master 1 month ago
NaiJi ✨ f64f741a76 fix: Manage server deletion for Digital Ocean 1 month ago
NaiJi ✨ 41dc77103f feat: Implement error handling on server deletion 1 month ago
Inex Code a0e531f18c Merge pull request 'feat: Implement logging for GraphQL API map' (#153) from graphql-logging into master 2 months ago
NaiJi ✨ 8dffcab30d chore: Rename and unify GraphQL logging classes 2 months ago
NaiJi ✨ 813d275d12 feat: Implement logging for GraphQL API map 2 months ago
NaiJi ✨ 1e8f17f16e chore: Merge recovery-error into master 2 months ago
NaiJi ✨ 7847839ea6 feat: Enable server provider logging 2 months ago
NaiJi ✨ 968667e4bf chore: Merge ssh-access-recovery into master 2 months ago
NaiJi ✨ d7318ed2e4 fix: Make recovery by API token endpoint expect GraphQL token 2 months ago
NaiJi ✨ 51ca8bce27 chore: Merge endpoint-errors into master 2 months ago
NaiJi ✨ b5133aa2a6 fix: Remove breaking installation changes 2 months ago
NaiJi ✨ e0b32404be refactor: Implement better error handling on create server stage 2 months ago
NaiJi ✨ 29b0bf2397 fix: Fix some initializing errors 2 months ago
NaiJi ✨ 899c84c54f chore: Rename Check step to Installation 2 months ago
NaiJi ✨ 54d8b04439 fix: Fix backblaze token validation 2 months ago
NaiJi ✨ 65f5d987e2 feat: Implement error handling for server installation 2 months ago
NaiJi ✨ 1dfd2180d2 feat: Implement distinction for connection errors on storage page 2 months ago
NaiJi ✨ 6b5a4f7875 chore: Make assets for connectior eroor shorter 2 months ago
NaiJi ✨ e62e8bf916 feat: Implement distinction for connection errors on dns provider page 2 months ago
NaiJi ✨ 1df5f6594d feat: Implement distinction for connection errors on server type page 2 months ago
NaiJi ✨ bd33b8d679 feat: Implement distinction for connection errors on initialing page 2 months ago
NaiJi ✨ 58ce0f0f8b chore: Merge digital-ocean into master 2 months ago
NaiJi ✨ 8c6b56f61d fix: Make improvements by Code Review 2 months ago
NaiJi ✨ a70e793360 chore: Merge master into digital-ocean 2 months ago
Inex Code 32ca58537e Merge pull request 'feat: Add refresh indicator on Recovery Key page to support drag gestures' (#148) from recovery-keys into master 2 months ago
NaiJi ✨ 3ba2c6f731 feat: Add refresh indicator on Recovery Key page to support drag gestures 2 months ago
NaiJi ✨ 479efac6e9 chore: Fix an awkward commentary typo... 3 months ago
NaiJi ✨ 93b28d981e chore: Remove testing flag before merging into master 3 months ago
NaiJi ✨ 58c9e00ce0 fix(recovery): Add reverse dns validation for digital ocean 3 months ago
NaiJi ✨ b2a5d57a1d feat(initializing): Add description and back button to server type step 3 months ago
NaiJi ✨ b53bb6d4dd refactor: Remove 'unused' warnings 3 months ago
NaiJi ✨ b26e22cd4e fix: Check on null for server type identifier 3 months ago
NaiJi ✨ da394e22ac feat(server-api): Implement bad certificates fallback for staging environment 3 months ago
NaiJi ✨ 0c4da8eb9f refactor: Move all API factories into encapsulated static class 3 months ago
NaiJi ✨ 268816385f fix(recovery): Fix custom api token on recovering provider type 3 months ago
NaiJi ✨ 611fe6bf45 feat(server-api): Implement support for staging acme certificates 3 months ago
NaiJi ✨ 51dc4c67b2 feat(recovery): Implement access recovery routing for server providers 3 months ago
NaiJi ✨ 0234278c2c refactor: Rename server.dart to server_api.dart 3 months ago
NaiJi ✨ bde364dde1 fix(digital-ocean): Adjust charts rendering for digital ocean values 3 months ago
NaiJi ✨ 2a5fceae91 fix(hetzner): Fix endpoints urls 3 months ago
NaiJi ✨ 92b417a103 feat(digital-ocean): Implement metrics for Digital Ocean 3 months ago
NaiJi ✨ 7fdc546714 refactor(server-api): Make appearance provider name polymorphic and required for metadata 3 months ago
NaiJi ✨ e20063a9ad chore: Remove unneeded metrics fields 3 months ago
NaiJi ✨ a7cbde663e refactor(server-api): Generalize and encapsulate server metrics endpoints 3 months ago
NaiJi ✨ e66b24d869 refactor: Remove obsolete initializing steps enum type 3 months ago
NaiJi ✨ 10bdd4c800 refactor(server-api): Make general server info polymorphic 3 months ago
NaiJi ✨ b3395915da fix(digital-ocean): Add correct linuxDevice path to volume objects 3 months ago
NaiJi ✨ cdc47ecdb3 refactor(ui): Move all pop up dialogs into general utils function 3 months ago
Inex Code 6eb49fa8f1 fix(digital-ocean): Change the cloud-config payload 3 months ago
NaiJi ✨ 59d186a8af fix(volume): Change raw int to DiskSize object in volume endpoints 3 months ago
NaiJi ✨ aa1c04fdb8 fix(digital-ocean): Fix response code checking on volume actions 3 months ago
NaiJi ✨ edc171efd7 fix(digital-ocean): Fix emoji picking for Digital ocean locations 3 months ago
NaiJi ✨ ff32ae96a5 chore: Merge master into digital-ocean 3 months ago
Inex Code 0639ee4d57 Merge pull request 'docs: Add brief list of critical packages for Linux build' (#146) from readme into master 3 months ago
NaiJi ✨ 6d548ce197 docs: Add brief list of critical packages for Linux build 3 months ago
NaiJi ✨ dc4ba7bce5 fix(digital-ocean): Modify cloud-init, add write_files sections 3 months ago
NaiJi ✨ 8c053f50b0 chore: Merge master into digital-ocean 3 months ago
NaiJi ✨ 667c59e93e chore: Merge deprecated into master 3 months ago
NaiJi ✨ 86b80156fd refactor: Generalize DKIM usage into DnsRecords 3 months ago
NaiJi ✨ 57d82d0f7a refactor(server-api): Move provider name from hardcode string to a polymorphic variable 3 months ago
NaiJi ✨ 68811efc1e refactor(server-api): Generalize and unify api response objects 3 months ago
NaiJi ✨ 0dc0ba215a fix(digital-ocean): Adjust droplet data preparations according to API notation 3 months ago
NaiJi ✨ cb94248df0 fix: Generate hive build runner model for server details 3 months ago
NaiJi ✨ 4aa6caed65 chore: Merge master into digital-ocean 3 months ago
NaiJi ✨ 25362665a4 chore: Merge build-runner into master 3 months ago
NaiJi ✨ 7c61d9a787 chore: Generate build runner models 3 months ago
NaiJi ✨ ed37775510 chore: Merge master into digital-ocean 3 months ago
NaiJi ✨ 7daa87f6c4 chore: Merge graphql into master 3 months ago
Inex Code 88bcdcff39 chore(server-api): Deprecate getDkim 3 months ago
Inex Code 1845bea361 chore(server-api): Deprecate ApiResponse 3 months ago
NaiJi ✨ 34b8bf5b07 chore: Merge master into graphql 3 months ago
NaiJi ✨ 93c58323b2 chore: Merge master into digital-ocean 3 months ago
NaiJi ✨ c4e470583c chore: Merge linter into master 3 months ago
NaiJi ✨ aa3dee585b chore(dart): Fix warnings that appeared at Dart 2.18 SDK 3 months ago
NaiJi ✨ a69b096d6f fix(digital-ocean): Change /locations to /regions and fix tokens validation 3 months ago
NaiJi ✨ 5ddbfcb342 chore: Merge master into digital-ocean 3 months ago
NaiJi ✨ c487f16194 chore: Merge master into graphql 3 months ago
NaiJi ✨ f703e2c055 Merge pull request 'fix(assets): Fix broken strings for network domain elements' (#142) from assets-fix into master 3 months ago
NaiJi ✨ 20e4d9565b fix(assets): Fix broken strings for network domain elements 3 months ago
NaiJi ✨ 1b94e14727 feat(server-api): Migrate all server endpoints to GraphQL 3 months ago
NaiJi ✨ 19b45ac142 fix(server-api): Adapt ApiResponse structure to GraphQL format 3 months ago
NaiJi ✨ 2b419d5923 chore: Merge master into graphql 3 months ago
NaiJi ✨ d837989940 Merge pull request 'fix(assets): Fix broken string for bytes on disk size' (#139) from assets-fix into master 3 months ago
NaiJi ✨ daf50e8c92 refactor(server-api): Replace Rest API interface with Graphql endpoints everywhere they are used 3 months ago
NaiJi ✨ b574659dc3 fix(initializing): Implement store and load of server provider from BNames 4 months ago
NaiJi ✨ df9ec28d02 fix(initializing): Adjust server location and type list cards 4 months ago
NaiJi ✨ 0cab3e3240 chore: Merge master into assets-fix 4 months ago
NaiJi ✨ 522cbbf3d5 Merge pull request 'feat(timezone): Timezone search bar for the timezone selection screen' (#138) from timezone-bar into master 4 months ago
NaiJi ✨ e956a2c9a1 fix(assets): Fix broken string for bytes on disk size 4 months ago
NaiJi ✨ 7223b0e614 fix(initialization): Add missing setup progress step 4 months ago
Inex Code e7bb1dc16e feat(timezone): Design the search bar for 'Select Timezone' page 4 months ago
NaiJi ✨ e36a94ded5 feat(timezone): Implement search bar for 'Select Timezone' page 4 months ago
NaiJi ✨ cb1fe6eafd fix(initializing): Make provider and server type picking work 4 months ago
NaiJi ✨ eebff47d0c chore: Merge master into digital-ocean 4 months ago
Inex Code e1419ce38f Merge pull request 'fix(assets): Remove string hardcode from domain setup page' (#137) from assets-fix into master 4 months ago
NaiJi ✨ b40ab17197 fix(initializing): Move bloc provider from provider picker to initialization page 4 months ago
NaiJi ✨ 556df5aadc fix(assets): Remove string hardcode from domain setup page 4 months ago
NaiJi ✨ ea85ce6064 refactor: Apply formatting 4 months ago
NaiJi ✨ bb846b08c1 feat(digital-ocean): Implement system endpoints for digital ocean 4 months ago
NaiJi ✨ e4ed69d151 refactor(volume): Make volume interfaces work through volume entities, not IDs 4 months ago
NaiJi ✨ d19531232c feat(digital-ocean): Implement endpoints for server creation and deletion 4 months ago
NaiJi ✨ f5a75e6eb5 feat(initializing): Implement additional server type field for server installation 4 months ago
NaiJi ✨ 8a93af2b06 fix(region): Move region settings for provider api to factory 4 months ago
NaiJi ✨ 72760e7980 feat(initializing): Implement server type selection for initialization page 4 months ago
NaiJi ✨ fe820ef5be feat(initializing): Implement location selection step for initializing page 4 months ago
NaiJi ✨ b30e372322 feat(region): Implement endpoints for listing available types by region 4 months ago
NaiJi ✨ e032bd8a78 feat(region): Implement endpoints for listing available provider regions 4 months ago
NaiJi ✨ 2f59954641 feat(region): Remove hardcode for region of server installation 4 months ago
NaiJi ✨ f40ed08b02 feat(volume): Implement volume endpoints for Digital Ocean 4 months ago
NaiJi ✨ 79e9334aca feat(pricing): Replace raw double with simple type Price 4 months ago
NaiJi ✨ 70330c59ab feat(digital-ocean): Implement provider picker pages 4 months ago
NaiJi ✨ ee160042f8 feat(digital-ocean): Add Digital Ocean logo asset 4 months ago
NaiJi ✨ 90dd3beae0 Merge pull request 'fix(validations): Make validations and errors text more specific' (#135) from validations into master 4 months ago
NaiJi ✨ a305e0b53f fix(assets): Change naming to conventional and consistent 'username' 4 months ago
NaiJi ✨ f4e588c435 fix(user): Replace cubit context read with state variable on login page 4 months ago
NaiJi ✨ 465af52350 Merge branch 'master' into validations 4 months ago
NaiJi ✨ c4f3b76414 fix(validations): Make validations and errors text more specific 4 months ago
NaiJi ✨ b741399ba9 Merge pull request 'refactor(job): Implement polymorphic behavior on creation for jobs' (#134) from server-settings into master 4 months ago
NaiJi ✨ 0b5f8b6920 fix(job): Remove unnecessary cascade validation calls 4 months ago
NaiJi ✨ 7bad11967a refactor(job): Implement polymorphic predicate for job accessibility 4 months ago
NaiJi ✨ db2f5c1342 fix(job): Fix server settings toogles not creating upgrade server job 4 months ago
NaiJi ✨ e619d6351f Merge pull request 'refactor(job): Make jobs execution polymorphic instead of relied on plain switch' (#133) from jobs-polymorphism into master 4 months ago
NaiJi ✨ 26466bb8d5 refactor(job): Force services to always reload after jobs execution 4 months ago
NaiJi ✨ d0be867aa6 refactor(job): Make jobs execution polymorphic instead of relied on plain switch 4 months ago
NaiJi ✨ c03e38ced1 Merge pull request 'fix(ui): New app bar now properly supports long titles' (#132) from inex/selfprivacy.org.app:fix/app-bars into master 4 months ago
Inex Code 3f663b7900 Merge branch 'master' into fix/app-bars 4 months ago
Inex Code 2fc20f43c3 fix(ui): New app bar now properly supports long titles 4 months ago
Inex Code eb8a67b081 Merge pull request 'refactor(service): Get rid of legacy common enums' (#129) from service-legacy into master 4 months ago
Inex Code f0ad720bf8 Merge branch 'master' into service-legacy 4 months ago
Inex Code bd9660c17c Merge pull request 'fix(i18l): Fix broken strings for configuration wizard' (#130) from asset-fix into master 4 months ago
NaiJi ✨ 1d48f2887d fix(i18l): Fix broken strings for configuration wizard 4 months ago
NaiJi ✨ 699e2f676f refactor(service): Get rid of legacy common enums 4 months ago
Inex Code 039534a8e9 Merge pull request 'chore(i18l): Add all plurals to en locale' (#128) from chore/plurals into master 4 months ago
Inex Code d8c5726619 chore(i18l): Add all plurals to en locale 4 months ago
Inex Code 1c3b0920cf Merge pull request 'chore: Update translations' (#127) from translations into master 4 months ago
Inex Code 8aaf62ca5c Translated using Weblate (Russian) 4 months ago
Inex Code 53e8ae5ce8 Translated using Weblate (English) 4 months ago
Inex Code 408b359a2a Merge pull request 'feat: MD3 app bars' (#126) from fix/better-app-bars into master 4 months ago
Inex Code 129eb76a04 feat: MD3 app bars 4 months ago
Inex Code 571e32ecff Merge pull request 'merge: assets-refactor' (#125) from assets-refactor into master 4 months ago
Inex Code 9644ade367 fix(i18l): Use fallback English translations when localized one not available 4 months ago
Inex Code c1cba41b7b fix(i18l): Un-hardcode service status descriptions 4 months ago
NaiJi ✨ d36c8e987d Completely refactor language asset files 4 months ago
Alya Sirko fecf96f31e Merge pull request 'Chore: Fix Metadata and Add README' (#122) from metadata into master 4 months ago
Alya Sirko 8696f575ac fix metadata and add README 4 months ago
Inex Code a362f962a0 Merge pull request 'Ops: Bundle Fastlane Metadata in our F-Droid Repository' (#120) from fdroid-metadata into master 4 months ago
Alya Sirko 737c86eeed change icons for targets 4 months ago
Alya Sirko 280075c276 production 4 months ago
Alya Sirko 62a0b41e94 change icon and name for nightlies 4 months ago
Alya Sirko d9f1d8991a trigger build 4 months ago
Alya Sirko f5921582b9 try to use different meta for nightlies 4 months ago
Alya Sirko e182a4ae03 too soon, oops 4 months ago
Alya Sirko 2c5ab5c21c production use 4 months ago
Alya Sirko c609349365 add icon to fastlane 4 months ago
Alya Sirko 02b7f9fc29 build release nightly builds, not debug 4 months ago
Alya Sirko 97c459054e also do this for release builds 4 months ago
Alya Sirko 0c53263983 try to bundle metadata for fdroid repo 4 months ago
Alya Sirko cb49bc18cc hotfix 5 months ago
Alya Sirko ed0171c891 hotfix 5 months ago
Alya Sirko 6b911bb8a6 Merge branch 'master' into gh-actions 5 months ago
Alya Sirko bb98a17b78 try to push to gitea 5 months ago
Alya Sirko 2206f423fd add release workflow 5 months ago
  1. 53
      .drone.yml
  2. 60
      README.md
  3. 8
      android/app/src/nightly/AndroidManifest.xml
  4. BIN
      android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png
  5. BIN
      android/app/src/nightly/res/mipmap-hdpi/launcher_icon.png
  6. BIN
      android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png
  7. BIN
      android/app/src/nightly/res/mipmap-mdpi/launcher_icon.png
  8. BIN
      android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png
  9. BIN
      android/app/src/nightly/res/mipmap-xhdpi/launcher_icon.png
  10. BIN
      android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png
  11. BIN
      android/app/src/nightly/res/mipmap-xxhdpi/launcher_icon.png
  12. BIN
      android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png
  13. BIN
      android/app/src/nightly/res/mipmap-xxxhdpi/launcher_icon.png
  14. 1
      android/gradle.properties
  15. BIN
      assets/images/logos/digital_ocean.png
  16. 6
      assets/images/logos/digital_ocean.svg
  17. 10
      assets/images/logos/hetzner.svg
  18. 12
      assets/markdown/about-be.md
  19. 12
      assets/markdown/about-cs.md
  20. 12
      assets/markdown/about-de.md
  21. 12
      assets/markdown/about-es.md
  22. 12
      assets/markdown/about-fr.md
  23. 12
      assets/markdown/about-it.md
  24. 12
      assets/markdown/about-ja.md
  25. 12
      assets/markdown/about-ka.md
  26. 12
      assets/markdown/about-nl.md
  27. 12
      assets/markdown/about-pl.md
  28. 12
      assets/markdown/about-sk.md
  29. 12
      assets/markdown/about-th.md
  30. 12
      assets/markdown/about-uk.md
  31. 8
      assets/markdown/how_backblaze-be.md
  32. 8
      assets/markdown/how_backblaze-cs.md
  33. 8
      assets/markdown/how_backblaze-de.md
  34. 8
      assets/markdown/how_backblaze-es.md
  35. 8
      assets/markdown/how_backblaze-fr.md
  36. 8
      assets/markdown/how_backblaze-it.md
  37. 8
      assets/markdown/how_backblaze-ja.md
  38. 8
      assets/markdown/how_backblaze-ka.md
  39. 8
      assets/markdown/how_backblaze-nl.md
  40. 8
      assets/markdown/how_backblaze-pl.md
  41. 2
      assets/markdown/how_backblaze-ru.md
  42. 8
      assets/markdown/how_backblaze-sk.md
  43. 8
      assets/markdown/how_backblaze-th.md
  44. 8
      assets/markdown/how_backblaze-uk.md
  45. 17
      assets/markdown/how_cloudflare-be.md
  46. 17
      assets/markdown/how_cloudflare-cs.md
  47. 17
      assets/markdown/how_cloudflare-de.md
  48. 17
      assets/markdown/how_cloudflare-es.md
  49. 17
      assets/markdown/how_cloudflare-fr.md
  50. 17
      assets/markdown/how_cloudflare-it.md
  51. 17
      assets/markdown/how_cloudflare-ja.md
  52. 17
      assets/markdown/how_cloudflare-ka.md
  53. 17
      assets/markdown/how_cloudflare-nl.md
  54. 17
      assets/markdown/how_cloudflare-pl.md
  55. 17
      assets/markdown/how_cloudflare-sk.md
  56. 17
      assets/markdown/how_cloudflare-th.md
  57. 17
      assets/markdown/how_cloudflare-uk.md
  58. 12
      assets/markdown/how_digital_ocean-be.md
  59. 12
      assets/markdown/how_digital_ocean-cs.md
  60. 12
      assets/markdown/how_digital_ocean-de.md
  61. 12
      assets/markdown/how_digital_ocean-en.md
  62. 12
      assets/markdown/how_digital_ocean-es.md
  63. 12
      assets/markdown/how_digital_ocean-fr.md
  64. 12
      assets/markdown/how_digital_ocean-it.md
  65. 12
      assets/markdown/how_digital_ocean-ja.md
  66. 12
      assets/markdown/how_digital_ocean-ka.md
  67. 12
      assets/markdown/how_digital_ocean-nl.md
  68. 12
      assets/markdown/how_digital_ocean-pl.md
  69. 10
      assets/markdown/how_digital_ocean-ru.md
  70. 12
      assets/markdown/how_digital_ocean-sk.md
  71. 12
      assets/markdown/how_digital_ocean-th.md
  72. 12
      assets/markdown/how_digital_ocean-uk.md
  73. 3
      assets/markdown/how_fallback_old-be.md
  74. 3
      assets/markdown/how_fallback_old-cs.md
  75. 3
      assets/markdown/how_fallback_old-de.md
  76. 3
      assets/markdown/how_fallback_old-es.md
  77. 3
      assets/markdown/how_fallback_old-fr.md
  78. 3
      assets/markdown/how_fallback_old-it.md
  79. 3
      assets/markdown/how_fallback_old-ja.md
  80. 3
      assets/markdown/how_fallback_old-ka.md
  81. 3
      assets/markdown/how_fallback_old-nl.md
  82. 3
      assets/markdown/how_fallback_old-pl.md
  83. 3
      assets/markdown/how_fallback_old-sk.md
  84. 3
      assets/markdown/how_fallback_old-th.md
  85. 3
      assets/markdown/how_fallback_old-uk.md
  86. 19
      assets/markdown/how_fallback_ssh-be.md
  87. 19
      assets/markdown/how_fallback_ssh-cs.md
  88. 19
      assets/markdown/how_fallback_ssh-de.md
  89. 19
      assets/markdown/how_fallback_ssh-es.md
  90. 19
      assets/markdown/how_fallback_ssh-fr.md
  91. 19
      assets/markdown/how_fallback_ssh-it.md
  92. 19
      assets/markdown/how_fallback_ssh-ja.md
  93. 19
      assets/markdown/how_fallback_ssh-ka.md
  94. 19
      assets/markdown/how_fallback_ssh-nl.md
  95. 19
      assets/markdown/how_fallback_ssh-pl.md
  96. 19
      assets/markdown/how_fallback_ssh-sk.md
  97. 19
      assets/markdown/how_fallback_ssh-th.md
  98. 19
      assets/markdown/how_fallback_ssh-uk.md
  99. 26
      assets/markdown/how_fallback_terminal-be.md
  100. 26
      assets/markdown/how_fallback_terminal-cs.md
  101. Some files were not shown because too many files have changed in this diff Show More

@ -6,6 +6,7 @@ steps:
- name: Prepare
commands:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- ln -s /var/lib/drone-runner-exec/fdroid $HOME/fdroid
- name: Run Tests
commands:
@ -25,6 +26,8 @@ steps:
- name: Sign and Commit Nightly Android Release Artifact (.APK) for F-Droid Repository
commands:
- rm -rf $HOME/fdroid/build/org.selfprivacy.app.nightly && mkdir $HOME/fdroid/build/org.selfprivacy.app.nightly
- git archive --format=tar HEAD | tar x -C $HOME/fdroid/build/org.selfprivacy.app.nightly
- ./ci.py --sign-apk-fdroid-nightly
environment:
STANDALONE_KEYSTORE_PASS:
@ -34,7 +37,7 @@ steps:
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Deploy F-Droid Repo
- name: Deploy F-Droid Repository
commands:
- ./ci.py --deploy-fdroid-repo
environment:
@ -60,6 +63,7 @@ steps:
- name: Prepare
commands:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- ln -s /var/lib/drone-runner-exec/fdroid $HOME/fdroid
- if podman volume exists release; then podman volume rm -f release; podman volume create release; else podman volume create release; fi
- git config user.email "builder@selfprivacy.org"
- git config user.name "Builder"
@ -93,16 +97,16 @@ steps:
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
# - name: Build Intermediate Android Release Artifact (Bundle)
# commands:
# - ./ci.py --build-bundle
# environment:
# STANDALONE_KEYSTORE_PASS:
# from_secret: STANDALONE_KEYSTORE_PASS
# FDROID_KEYSTORE_PASS:
# from_secret: FDROID_KEYSTORE_PASS
# GOOGLE_KEYSTORE_PASS:
# from_secret: GOOGLE_KEYSTORE_PASS
- name: Build Intermediate Android Release Artifact (Bundle)
commands:
- ./ci.py --build-bundle
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Sign Android Release Artifact (.APK) for Standalone Use
commands:
@ -117,6 +121,8 @@ steps:
- name: Sign and Commit Android Release Artifact (.APK) for F-Droid Repository
commands:
- rm -rf $HOME/fdroid/build/org.selfprivacy.app && mkdir $HOME/fdroid/build/org.selfprivacy.app
- git archive --format=tar HEAD | tar x -C $HOME/fdroid/build/org.selfprivacy.app
- ./ci.py --sign-apk-fdroid
environment:
STANDALONE_KEYSTORE_PASS:
@ -126,16 +132,16 @@ steps:
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
# - name: Sign Android Release Artifact (Bundle) for Google Play
# commands:
# - ./ci.py --sign-bundle
# environment:
# STANDALONE_KEYSTORE_PASS:
# from_secret: STANDALONE_KEYSTORE_PASS
# FDROID_KEYSTORE_PASS:
# from_secret: FDROID_KEYSTORE_PASS
# GOOGLE_KEYSTORE_PASS:
# from_secret: GOOGLE_KEYSTORE_PASS
- name: Sign Android Release Artifact (Bundle) for Google Play
commands:
- ./ci.py --sign-bundle
environment:
STANDALONE_KEYSTORE_PASS:
from_secret: STANDALONE_KEYSTORE_PASS
FDROID_KEYSTORE_PASS:
from_secret: FDROID_KEYSTORE_PASS
GOOGLE_KEYSTORE_PASS:
from_secret: GOOGLE_KEYSTORE_PASS
- name: Package Linux AppImage Artifact
commands:
@ -151,8 +157,7 @@ steps:
- name: Push Artifacts to the Release Volume
commands:
# - git add -v *.AppImage *.AppImage.zsync *.flatpak *.apk *.apk.idsig *.aab *.tar.zstd
- git add -v *.AppImage *.AppImage.zsync *.flatpak *.apk *.apk.idsig *.tar.zstd
- git add -v *.AppImage *.AppImage.zsync *.flatpak *.apk *.apk.idsig *.aab *.tar.zstd
- git commit -m Release
- git archive --format=tar HEAD | podman volume import release -
@ -175,7 +180,7 @@ steps:
- ln -s /var/lib/drone-runner-exec/.local $HOME/.local
- podman unshare podman volume mount release
- name: Create Release and Deploy Artifacts
- name: Deploy Artifacts to Gitea
commands:
- ./ci.py --deploy-gitea-release
environment:

@ -1,17 +1,57 @@
# SelfPrivacy App
- [Official site](https://selfprivacy.org)
- [SelfPrivacy App (F-Droid)](https://f-droid.org/en/packages/pro.kherel.selfprivacy/)
SelfPrivacy — is a platform on your cloud hosting, that allows to deploy your own private services and control them using mobile application.
## Getting Started
To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/en/second
This project is a starting point for a Flutter application.
Application will do the following things for you:
A few resources to get you started if this is your first Flutter project:
1. Create your personal server
2. Setup NixOS
3. Bring all services to the ready-to-use state. Services include:
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
* E-mail, ready to use with DeltaChat
* NextCloud - your personal cloud storage
* Bitwarden — secure and private password manager
* Pleroma — your private fediverse space for blogging
* Jitsi — awesome Zoom alternative
* Gitea — your own Git server
* OpenConnect — Personal VPN server
For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
**Project is currently in open beta state**. Feel free to try it. It would be much appreciated if you would provide us with some feedback.
## Building
Supported platforms are Android, Linux, and Windows. We are looking forward to support iOS and macOS builds.
For Linux builds, make sure you have these packages installed:
|Arch-based|Debian-based|
|----------|------------|
|pacman -S ninja xdg-user-dirs gnome-keyring unzip xz-utils zip|apt install ninja-build xdg-user-dirs gnome-keyring unzip xz-utils zip|
Install [Flutter](https://docs.flutter.dev/get-started/install/linux) and [Android SDK tools](https://developer.android.com/studio/command-line/sdkmanager), then try your setup:
```
flutter pub get
# Build .APK for Android
flutter build --flavor production apk
# Build AAB bundle for Google Play
flutter build --flavor production aab
# Build Linux binaries
flutter build linux
# Build Windows binaries
flutter build windows
# Package AppImage
appimage-builder --recipe appimage.yml
# Package Flatpak
flatpak-builder --force-clean --repo=flatpak-repo flatpak-build flatpak.yml
flatpak build-bundle flatpak-repo org.selfprivacy.app.flatpak org.selfprivacy.app
```
## Translations
[![Translation status](http://weblate.selfprivacy.org/widgets/selfprivacy/-/selfprivacy-app/multi-auto.svg)](http://weblate.selfprivacy.org/engage/selfprivacy/)
Translations are stored in `assets/translations/*.json` and can be edited on <https://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/>.

@ -0,0 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.selfprivacy.app">
<application
tools:replace="android:label"
android:label="SelfPrivacy (Nightly)">
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@ -1,3 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.bundle.enableUncompressedNativeLibs=false

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

@ -0,0 +1,6 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.0013 24.0128V19.3592C16.927 19.3592 20.7505 14.4743 18.8591 9.2901C18.1652 7.37152 16.6276 5.83395 14.709 5.14C9.52482 3.26224 4.63995 7.07217 4.63995 11.9979H0C0 4.14669 7.59264 -1.97641 15.8248 0.595295C19.417 1.72467 22.2881 4.58211 23.4038 8.17433C25.9755 16.4201 19.8661 24.0128 12.0013 24.0128Z" fill="white"/>
<path d="M12.0149 19.3729H7.38855V14.7466H12.0149V19.3729Z" fill="white"/>
<path d="M7.38861 22.9376H3.82361V19.3726H7.38861V22.9376Z" fill="white"/>
<path d="M3.82354 19.373H0.843628V16.3931H3.82354V19.373Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 657 B

@ -0,0 +1,10 @@
<svg width="24" height="23" viewBox="0 0 24 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_51804_9018)">
<path d="M22.5704 0H19.3252C18.5948 0 18.2817 0.302609 18.2817 1.04348V9.25565H5.35304V1.04348C5.35304 0.313043 5.05044 0 4.30957 0H1.04348C0.302609 0 0 0.302609 0 1.04348V22.1739C0 22.9148 0.302609 23.2174 1.04348 23.2174H4.30957C5.04 23.2174 5.35304 22.9252 5.35304 22.1739V13.8261H18.2922V22.1739C18.2922 22.9043 18.5948 23.2174 19.3357 23.2174H22.5809C23.3113 23.2174 23.6243 22.9148 23.6243 22.1739V1.04348C23.6035 0.333913 23.3009 0 22.5704 0Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_51804_9018">
<rect width="24" height="22.9565" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 722 B

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

@ -0,0 +1,12 @@
### Про нас
Все більше корпорацій хочуть контролювати свої дані.
Ми хочемо мати повний контроль над нашими.
### Наша місія
Цифрова незалежність і конфіденційність доступні кожному
### Ціль
Розробити програму, яка дозволить кожному розгорнути свої приватні послуги для себе та їх сусідів.

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -5,4 +5,4 @@
4. Во всплывающем окне подтверждаем генерацию.
5. Сохраняем _keyID_ и _applicationKey_ в надёжном месте. Например в менеджере паролей.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Получение токена Backblaze](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,8 @@
## Як отримати Backblaze API токен
1. Перейдіть за посиланням і авторизуйте: https://secure.backblaze.com/user_signin.htm
2. У лівій частині інтерфейсу виберіть **App Keys** у підкатегорії **B2 Cloud Storage**.
3. Натисніть кнопку синій **Створити новий майстер-ключ програми**.
4. У з'явилось спливаюче вікно підтверджують покоління.
5. Save _KeyID_ and _applicationKey_ in the safe place. Наприклад, в менеджері паролів.
![Backblaze токен налаштування](resource:assets/images/gifs/Backblaze.gif)

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

@ -0,0 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.