├── .editorconfig ├── .eslintrc.js ├── .github └── workflows │ └── nodejs.yml ├── .gitignore ├── .ignore ├── DEPLOY.md ├── LICENSE ├── README.md ├── android ├── .gitignore ├── app │ ├── .gitignore │ ├── build.gradle │ ├── capacitor.build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── getcapacitor │ │ │ └── myapp │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── matthiasprost │ │ │ │ └── scalewaymanager │ │ │ │ └── MainActivity.java │ │ └── res │ │ │ ├── drawable-land-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-land-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-night │ │ │ └── splash.png │ │ │ ├── drawable-port-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-port-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── splash.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-ldpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── file_paths.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── getcapacitor │ │ └── myapp │ │ └── ExampleUnitTest.java ├── build.gradle ├── capacitor.settings.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── variables.gradle ├── angular.json ├── capacitor.config.json ├── config.xml ├── e2e ├── protractor.conf.js ├── src │ ├── app.e2e-spec.ts │ └── app.po.ts └── tsconfig.e2e.json ├── ionic.config.json ├── ios ├── .gitignore └── App │ ├── App.xcodeproj │ └── project.pbxproj │ ├── App.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ ├── App │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── AppIcon-512@2x.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── Splash.imageset │ │ │ ├── Contents.json │ │ │ ├── Default@1x~universal~anyany-dark.png │ │ │ ├── Default@1x~universal~anyany.png │ │ │ ├── Default@2x~universal~anyany-dark.png │ │ │ ├── Default@2x~universal~anyany.png │ │ │ ├── Default@3x~universal~anyany-dark.png │ │ │ ├── Default@3x~universal~anyany.png │ │ │ ├── splash-2732x2732-1.png │ │ │ ├── splash-2732x2732-2.png │ │ │ └── splash-2732x2732.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── capacitor.config.json │ └── config.xml │ ├── Podfile │ └── Podfile.lock ├── package.json ├── proxy.conf.js ├── resources ├── README.md ├── android │ ├── adaptiveicon │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ └── values │ │ │ └── ic_launcher_background.xml │ ├── icon │ │ ├── drawable-hdpi-icon.png │ │ ├── drawable-ldpi-icon.png │ │ ├── drawable-mdpi-icon.png │ │ ├── drawable-xhdpi-icon.png │ │ ├── drawable-xxhdpi-icon.png │ │ └── drawable-xxxhdpi-icon.png │ ├── splash │ │ ├── drawable-land-hdpi-screen.png │ │ ├── drawable-land-ldpi-screen.png │ │ ├── drawable-land-mdpi-screen.png │ │ ├── drawable-land-xhdpi-screen.png │ │ ├── drawable-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png │ └── xml │ │ └── network_security_config.xml ├── icon.png ├── ios │ ├── icon │ │ ├── icon-1024.png │ │ ├── icon-108@2x.png │ │ ├── icon-20.png │ │ ├── icon-20@2x.png │ │ ├── icon-20@3x.png │ │ ├── icon-24@2x.png │ │ ├── icon-27.5@2x.png │ │ ├── icon-29.png │ │ ├── icon-29@2x.png │ │ ├── icon-29@3x.png │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-44@2x.png │ │ ├── icon-50.png │ │ ├── icon-50@2x.png │ │ ├── icon-60.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72.png │ │ ├── icon-72@2x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ ├── icon-83.5@2x.png │ │ ├── icon-86@2x.png │ │ ├── icon-98@2x.png │ │ ├── icon-small.png │ │ ├── icon-small@2x.png │ │ ├── icon-small@3x.png │ │ ├── icon.png │ │ └── icon@2x.png │ └── splash │ │ ├── Default-1792h~iphone.png │ │ ├── Default-2436h.png │ │ ├── Default-2688h~iphone.png │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-1792h~iphone.png │ │ ├── Default-Landscape-2436h.png │ │ ├── Default-Landscape-2688h~iphone.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape@~ipadpro.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait@~ipadpro.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ ├── Default@2x~universal~anyany.png │ │ └── Default~iphone.png └── splash.png ├── scripts └── resources.js ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.html │ ├── app.component.spec.ts │ ├── app.component.ts │ ├── app.module.ts │ ├── app.scss │ ├── components │ │ ├── components.module.ts │ │ ├── error │ │ │ ├── error.component.html │ │ │ ├── error.component.scss │ │ │ ├── error.component.spec.ts │ │ │ └── error.component.ts │ │ ├── graph │ │ │ ├── graph.component.html │ │ │ ├── graph.component.scss │ │ │ ├── graph.component.spec.ts │ │ │ └── graph.component.ts │ │ ├── list │ │ │ ├── list.component.html │ │ │ ├── list.component.scss │ │ │ ├── list.component.spec.ts │ │ │ └── list.component.ts │ │ └── loader │ │ │ ├── loader.component.html │ │ │ ├── loader.component.scss │ │ │ ├── loader.component.spec.ts │ │ │ └── loader.component.ts │ ├── guards │ │ ├── double-auth │ │ │ ├── double-auth.guard.spec.ts │ │ │ └── double-auth.guard.ts │ │ ├── home │ │ │ ├── home.guard.spec.ts │ │ │ └── home.guard.ts │ │ └── login │ │ │ ├── login.guard.spec.ts │ │ │ └── login.guard.ts │ ├── helpers │ │ └── mergeZones.ts │ ├── pages │ │ ├── about │ │ │ ├── about.module.ts │ │ │ ├── about.page.html │ │ │ ├── about.page.scss │ │ │ ├── about.page.spec.ts │ │ │ └── about.page.ts │ │ ├── account │ │ │ ├── account.module.ts │ │ │ ├── account.page.html │ │ │ ├── account.page.scss │ │ │ ├── account.page.spec.ts │ │ │ ├── account.page.ts │ │ │ ├── change-organization │ │ │ │ ├── change-organization.module.ts │ │ │ │ ├── change-organization.page.html │ │ │ │ ├── change-organization.page.scss │ │ │ │ ├── change-organization.page.spec.ts │ │ │ │ └── change-organization.page.ts │ │ │ ├── change-project │ │ │ │ ├── change-project.module.ts │ │ │ │ ├── change-project.page.html │ │ │ │ ├── change-project.page.scss │ │ │ │ ├── change-project.page.spec.ts │ │ │ │ └── change-project.page.ts │ │ │ ├── ssh-keys │ │ │ │ ├── add-ssh-key │ │ │ │ │ ├── add-ssh-key.module.ts │ │ │ │ │ ├── add-ssh-key.page.html │ │ │ │ │ ├── add-ssh-key.page.scss │ │ │ │ │ ├── add-ssh-key.page.spec.ts │ │ │ │ │ └── add-ssh-key.page.ts │ │ │ │ ├── ssh-keys.module.ts │ │ │ │ ├── ssh-keys.page.html │ │ │ │ ├── ssh-keys.page.scss │ │ │ │ ├── ssh-keys.page.spec.ts │ │ │ │ └── ssh-keys.page.ts │ │ │ └── tokens │ │ │ │ ├── tokens.module.ts │ │ │ │ ├── tokens.page.html │ │ │ │ ├── tokens.page.scss │ │ │ │ ├── tokens.page.spec.ts │ │ │ │ └── tokens.page.ts │ │ ├── auth │ │ │ ├── double-auth │ │ │ │ ├── double-auth.module.ts │ │ │ │ ├── double-auth.page.html │ │ │ │ ├── double-auth.page.scss │ │ │ │ ├── double-auth.page.spec.ts │ │ │ │ └── double-auth.page.ts │ │ │ └── login │ │ │ │ ├── help │ │ │ │ ├── help.module.ts │ │ │ │ ├── help.page.html │ │ │ │ ├── help.page.scss │ │ │ │ ├── help.page.spec.ts │ │ │ │ └── help.page.ts │ │ │ │ ├── login.module.ts │ │ │ │ ├── login.page.html │ │ │ │ ├── login.page.scss │ │ │ │ ├── login.page.spec.ts │ │ │ │ └── login.page.ts │ │ ├── billing │ │ │ ├── billing.module.ts │ │ │ ├── billing.page.html │ │ │ ├── billing.page.scss │ │ │ ├── billing.page.spec.ts │ │ │ └── billing.page.ts │ │ ├── home │ │ │ ├── home.module.ts │ │ │ ├── home.page.html │ │ │ ├── home.page.scss │ │ │ ├── home.page.spec.ts │ │ │ └── home.page.ts │ │ ├── products │ │ │ ├── bmaas │ │ │ │ ├── bmaas.module.ts │ │ │ │ ├── bmaas.page.html │ │ │ │ ├── bmaas.page.scss │ │ │ │ ├── bmaas.page.spec.ts │ │ │ │ ├── bmaas.page.ts │ │ │ │ └── details │ │ │ │ │ ├── details.module.ts │ │ │ │ │ ├── details.page.html │ │ │ │ │ ├── details.page.scss │ │ │ │ │ ├── details.page.spec.ts │ │ │ │ │ └── details.page.ts │ │ │ ├── buckets │ │ │ │ ├── add-bucket │ │ │ │ │ ├── add-bucket.module.ts │ │ │ │ │ ├── add-bucket.page.html │ │ │ │ │ ├── add-bucket.page.scss │ │ │ │ │ ├── add-bucket.page.spec.ts │ │ │ │ │ └── add-bucket.page.ts │ │ │ │ ├── buckets.module.ts │ │ │ │ ├── buckets.page.html │ │ │ │ ├── buckets.page.scss │ │ │ │ ├── buckets.page.spec.ts │ │ │ │ ├── buckets.page.ts │ │ │ │ └── objects │ │ │ │ │ ├── objects.module.ts │ │ │ │ │ ├── objects.page.html │ │ │ │ │ ├── objects.page.scss │ │ │ │ │ ├── objects.page.spec.ts │ │ │ │ │ ├── objects.page.ts │ │ │ │ │ └── options │ │ │ │ │ ├── obj-infos │ │ │ │ │ ├── obj-infos.module.ts │ │ │ │ │ ├── obj-infos.page.html │ │ │ │ │ ├── obj-infos.page.scss │ │ │ │ │ ├── obj-infos.page.spec.ts │ │ │ │ │ └── obj-infos.page.ts │ │ │ │ │ ├── options.module.ts │ │ │ │ │ ├── options.page.html │ │ │ │ │ ├── options.page.scss │ │ │ │ │ ├── options.page.spec.ts │ │ │ │ │ └── options.page.ts │ │ │ └── instances │ │ │ │ ├── details │ │ │ │ ├── details.module.ts │ │ │ │ ├── details.page.html │ │ │ │ ├── details.page.scss │ │ │ │ ├── details.page.spec.ts │ │ │ │ └── details.page.ts │ │ │ │ ├── instances.module.ts │ │ │ │ ├── instances.page.html │ │ │ │ ├── instances.page.scss │ │ │ │ ├── instances.page.spec.ts │ │ │ │ └── instances.page.ts │ │ └── settings │ │ │ ├── settings.module.ts │ │ │ ├── settings.page.html │ │ │ ├── settings.page.scss │ │ │ ├── settings.page.spec.ts │ │ │ └── settings.page.ts │ ├── pipes │ │ ├── billing-state-icon │ │ │ ├── billing-state-icon.pipe.spec.ts │ │ │ └── billing-state-icon.pipe.ts │ │ ├── file-size │ │ │ ├── file-size.pipe.spec.ts │ │ │ └── file-size.pipe.ts │ │ ├── pipes.module.ts │ │ ├── server-icon │ │ │ ├── server-icon.pipe.spec.ts │ │ │ └── server-icon.pipe.ts │ │ ├── total-volume-space │ │ │ ├── total-volumes-space.pipe.spec.ts │ │ │ └── total-volumes-space.pipe.ts │ │ └── zone-flag │ │ │ ├── zone-flag.pipe.spec.ts │ │ │ └── zone-flag.pipe.ts │ └── services │ │ ├── api │ │ ├── api.service.spec.ts │ │ ├── api.service.ts │ │ └── object-api.service.ts │ │ ├── billing │ │ ├── billing.dto.ts │ │ ├── billing.service.spec.ts │ │ └── billing.service.ts │ │ ├── bmaas │ │ ├── bmaas.dto.ts │ │ ├── bmaas.service.spec.ts │ │ ├── bmaas.service.ts │ │ └── config.ts │ │ ├── nav │ │ ├── nav-params.service.spec.ts │ │ └── nav-params.service.ts │ │ ├── object │ │ ├── config.ts │ │ ├── object.dto.ts │ │ ├── object.service.spec.ts │ │ └── object.service.ts │ │ ├── servers │ │ ├── actions.dto.ts │ │ ├── config.ts │ │ ├── server.dto.ts │ │ ├── servers.service.spec.ts │ │ └── servers.service.ts │ │ └── user │ │ ├── account │ │ ├── account.dto.ts │ │ ├── account.service.spec.ts │ │ └── account.service.ts │ │ ├── auth │ │ ├── auth.service.spec.ts │ │ └── auth.service.ts │ │ └── project │ │ ├── project.dto.ts │ │ ├── project.service.spec.ts │ │ ├── project.service.ts │ │ ├── ssh-key │ │ ├── ssh-keys.dto.ts │ │ ├── ssh-keys.service.spec.ts │ │ └── ssh-keys.service.ts │ │ └── tokens │ │ ├── tokens.dto.ts │ │ ├── tokens.service.spec.ts │ │ └── tokens.service.ts ├── assets │ ├── icon-background.png │ ├── icon-foreground.png │ ├── icon-only.png │ ├── icon │ │ └── favicon.png │ ├── icons │ │ ├── icon-128.webp │ │ ├── icon-192.webp │ │ ├── icon-256.webp │ │ ├── icon-48.webp │ │ ├── icon-512.webp │ │ ├── icon-72.webp │ │ └── icon-96.webp │ ├── img │ │ ├── alpine.svg │ │ ├── arch.svg │ │ ├── background.svg │ │ ├── centos.svg │ │ ├── debian.svg │ │ ├── fedora.svg │ │ ├── france.svg │ │ ├── github-logo.svg │ │ ├── gitlab.svg │ │ ├── invoice.svg │ │ ├── key.svg │ │ ├── logo-purple.svg │ │ ├── logo-white.svg │ │ ├── netherlands.svg │ │ ├── openvpn.svg │ │ ├── profile.svg │ │ ├── server.svg │ │ ├── ubuntu.svg │ │ └── warsaw.svg │ ├── splash-dark.png │ └── splash.png ├── global.scss ├── index.html ├── karma.conf.js ├── main.ts ├── manifest.webmanifest ├── polyfills.ts ├── test.ts ├── theme │ └── variables.scss ├── tsconfig.app.json ├── tsconfig.spec.json └── zone-flags.ts ├── tsconfig.app.json ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | 10 | # We recommend you to keep these unchanged 11 | end_of_line = lf 12 | charset = utf-8 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@ionic/eslint-config/recommended'], 3 | overrides: [{ 4 | files: '*.ts', 5 | rules: { 6 | '@typescript-eslint/consistent-type-imports': 'off', 7 | 8 | // Typescript 3.1 doesn't support optional chaining upgrade is needed 9 | '@typescript-eslint/prefer-optional-chain': 'off' 10 | } 11 | }] 12 | } 13 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Scaleway Manager CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - release 8 | - CI 9 | 10 | jobs: 11 | Linux_Build: 12 | 13 | runs-on: self-hosted 14 | 15 | steps: 16 | - uses: actions/checkout@v1 17 | 18 | - run: npm ci 19 | 20 | - name: Setup Ionic & Cordova 21 | uses: coturiv/setup-ionic@v1 22 | with: 23 | cordova-version: 9.0.0 24 | 25 | - name: Ionic Build 26 | run: | 27 | ionic info 28 | ionic build 29 | 30 | 31 | Android_Build: 32 | 33 | runs-on: self-hosted 34 | 35 | steps: 36 | - uses: actions/checkout@v1 37 | 38 | - run: npm ci 39 | 40 | - name: Setup Ionic & Cordova 41 | uses: coturiv/setup-ionic@v1.0.0 42 | with: 43 | # Version range or exact version of Cordova to use 44 | cordova-version: 9.0.0 45 | # Version range or exact version of Ionic to use 46 | ionic-version: 5.4.11 47 | # Whether to install Java 48 | install-java: true 49 | # Whether to install CocoaPods 50 | install-pods: false 51 | 52 | - name: Android Build 53 | run: | 54 | ionic info 55 | ionic cordova build android --prod 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.angular/cache 2 | # Specifies intentionally untracked files to ignore when using Git 3 | # http://git-scm.com/docs/gitignore 4 | 5 | *~ 6 | *.sw[mnpcod] 7 | *.log 8 | *.tmp 9 | *.tmp.* 10 | log.txt 11 | *.sublime-project 12 | *.sublime-workspace 13 | .vscode/ 14 | npm-debug.log* 15 | 16 | .idea/ 17 | .ionic/ 18 | .sourcemaps/ 19 | .sass-cache/ 20 | .tmp/ 21 | .versions/ 22 | .zed 23 | coverage/ 24 | www/ 25 | node_modules/ 26 | tmp/ 27 | temp/ 28 | platforms/ 29 | plugins/ 30 | plugins/android.json 31 | plugins/ios.json 32 | $RECYCLE.BIN/ 33 | 34 | .DS_Store 35 | Thumbs.db 36 | UserInterfaceState.xcuserstate 37 | 38 | src/environments/ 39 | -------------------------------------------------------------------------------- /.ignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .editconfig 3 | .git 4 | .github 5 | .gitignore 6 | .idea 7 | android 8 | ios 9 | angular.json 10 | capacitor.config.json 11 | config.xml 12 | e2e 13 | ionic.config.json 14 | ios 15 | package-lock,json 16 | package.json 17 | plugins 18 | www 19 | tslint.json 20 | tsconfig.json 21 | webpack.config.js 22 | src/tsconfig.app.json 23 | tsconfig.spec.json 24 | tslint.json 25 | zone-flag.ts 26 | -------------------------------------------------------------------------------- /DEPLOY.md: -------------------------------------------------------------------------------- 1 | This file is a personal reminder for deploy, don't mind about it :) 2 | 3 | ## Prerequisite 4 | 5 | Whatever platform you're trying to test or to deploy you need your packages to be installed: 6 | 7 | ```sh 8 | rm -rf node_modules && npm i 9 | ``` 10 | 11 | ## iOS 12 | 13 | #### Requirements 14 | 15 | - Macbook (Can be a VM with VMWare but expect it to be slow as hell) 16 | - Xcode 17 | - Ionic 18 | - Capacitor 19 | 20 | #### Build 21 | 22 | 1. Run `yarn run build:ios` 23 | 2. It should open xcode, you can start it on any emulator or device 24 | 25 | #### Deploy 26 | 27 | 1. Run `yarn run build:ios` 28 | 2. Change the version of the app + build number in xcode 29 | 3. Click on `Product > Archive` then `Distribute App` and follow the steps 30 | 4. That's it, it should be on App Store Connect 31 | 32 | ## Android 33 | 34 | #### Requirements 35 | 36 | - Android Studio 37 | - Android SDK 38 | - Ionic 39 | - Capacitor 40 | 41 | #### Test 42 | 43 | 1. Run `yarn run build:android` 44 | 2. It should open Android Studio, you can start it on any emulator or device 45 | 46 | #### Deploy 47 | 48 | 1. Run `yarn run build:android` 49 | 2. Change version into `android > app > build.gradle`: 50 | ``` 51 | versionCode 20005 52 | versionName "2.0.5" 53 | ``` 54 | 3. Then `Build > Generate Signed Bundle / APK > Android App Bundle` choose Key Store (*/mypath/mykey.jks*) and put `scaleway` as alias 55 | 4. Upload manually `.aab` file on Google Play Store 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
{{ get(data, subTitle) || subTitle }}
31 |Here is a list of questions/answers that might help you:
14 | 15 |You need a Scaleway account.
17 | 18 |20 | At the bottom of this page you have a mail icon, tap on it and write me 21 | what's wrong. 22 |
23 | 24 |Absolutely not! This is an Open Source Project on GitHub.
26 | 27 |This application is totally free and without any advertising.
29 | 30 |32 | I'm only one developer, you can found me on Twitter: 33 | matthpr_ 34 |
35 | 36 |
38 | I do not sell or use your data at any moment. I just use Scaleway API to
39 | allow you to connect, get your servers, start them, ect. Also
40 | this project is Open Source on GitHub.
If you're still
41 | worried about your account security I recommend you to activate Two-Factor
42 | Authentication.
43 |
Oops!
38 |Seems like you have no permissions for projects on this organization.
39 |No server available
36 | It is possible that you don't have resources permissions on this 38 | organization 40 |