An infrastructure-as-code and deployment tool for Roblox.

Overview

Mantle 🚀

An infrastructure-as-code and deployment tool for Roblox.

Please note that this is an early release and the API is unstable. Releases follow pre-release semantic versioning (minor updates indicate breaking changes)

Installation with Foreman

It is recommended to install with Foreman, with the following config:

# foreman.toml

[tools]
mantle = { source = "blake-mealey/mantle", version = "0.9.0" }

You can learn more about Foreman including how to install it from its documentation.

Documentation

Check out the docs site for more info.

Comments
  • Updating a place resource will always 404

    Updating a place resource will always 404

    I'm running 0.11.1 but it seems like this is affecting all versions of Mantle.

    Deploying resources:
      ╷
      │  ~ Updating: placeFile_start
      │    ╷
      │    │  Dependencies:
      │    │      - place:
      │    │          assetId: XXXXXXXXX
      │    │  Inputs:
      │    │      placeFile:
      │    │        filePath: game.rbxlx
      │    │    -   fileHash: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      │    │    +   fileHash: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      │    │  
      │    ╰─ Failed: Unknown error (status 404 Not Found)
      │
      │
      ╰─ Failed 1 changes(s) while evaluating the resource graph. See above for more details.
    

    Personal assumption is that this is caused by Roblox's recent removal of api.roblox.com and www.roblox.com endpoints.

    opened by eleanorlm 15
  • Creating non-starting places consistently fails

    Creating non-starting places consistently fails

    When deploying with a configuration that has multiple places in an experience, any places that are not the starting place fail during creation. The resulting error message is HTML for a generic Roblox error page. A new place is actually created on the website during this process, but the steps to upload the place file and apply the configuration are skipped.

    I had to pipe the output into a text file because the HTML was too long for my terminal

    image

    The program then goes on to skip the file upload & configuration steps for the place that failed, but successfully creates the starting place.

    image

    roblox bug 
    opened by SolarHorizon 9
  • Updating game pass icons does not work

    Updating game pass icons does not work

    Describe the bug When updating a game pass icon, Mantle errors with a 404 Not Found.

    To Reproduce Steps to reproduce the behavior:

    1. Deploy a game pass with initial icon.
    2. Change the icon file and deploy again.
    3. Mantle errors with 404 Not Found.

    Expected behavior The icon is correctly updated.

    Environment (please complete the following information):

    • OS: Windows
    • Mantle Version 0.11.1

    Additional context It looks like this is because of the usage of POST https://publish.roblox.com/v1/game-passes/:gamePassId/icon, which does not seem to exist (tested this with Postman). https://github.com/blake-mealey/mantle/blob/0adfb6333ed5f0f8e96260d73cee99d09c07ef70/rbx_mantle/src/roblox_api.rs#L1536

    When manually updating the game pass icon and checking the browser logs, only one request is made and this is to https://www.roblox.com/game-pass/update, same as in update_game_pass: https://github.com/blake-mealey/mantle/blob/0adfb6333ed5f0f8e96260d73cee99d09c07ef70/rbx_mantle/src/roblox_api.rs#L1514

    When the game pass icon is changed, this request is encoded as gzip and includes the new image.

    bug 
    opened by guidojw 8
  • Getting 413 Payload Too Large

    Getting 413 Payload Too Large

    I am getting 413 Payload Too Large errors when running mantle deploy. image

    The place I'm trying to upload is ~650 MB. If this is me hitting the endpoint's limits, are there any alternatives I can use?

    bug question 
    opened by guidojw 8
  • Roblox is subsetting api.roblox.com

    Roblox is subsetting api.roblox.com

    Context: https://devforum.roblox.com/t/action-needed-sunsetting-apirobloxcom/1796897

    Affected endpoints we currently use:

    • [x] GET /marketplace/game-pass-product-info -> A new endpoint is not ready at the time of this announcement. Please stay tuned.
    • [x] GET /developerproducts/list -> Develop Api
    • [x] POST /universes/create -> A new endpoint is not ready at the time of this announcement. Please stay tuned.

    Currently none of these endpoints actually has a replacement we can use. They linked to Develop Api for one but there is no analogous API there.

    roblox api deprecation next 
    opened by blake-mealey 7
  • Give audio uploads access to the targeted experience ID immediately after uploading

    Give audio uploads access to the targeted experience ID immediately after uploading

    What type of feature request is this? Mantle doesn't support a Roblox feature I would like to use

    Currently I have to manually give every audio asset uploaded access to the proper universe ID for them to play ingame without publishing a build, Ideally mantle should handle this for me, current workaround is going through every audio asset in the asset manager after deploying and clicking this in the output. Screenshot 2022-11-23 103805

    bug 
    opened by Awes-3 4
  • add full infra-as-code support for all experience assets

    add full infra-as-code support for all experience assets

    (DRAFT)

    ~Experience icon:~

    • ~Create: POST https://publish.roblox.com/v1/games/{gameId}/icon~ added in #12

    ~Experience thumbnails:~

    • ~Create: POST https://publish.roblox.com/v1/games/{gameId}/thumbnail/image~ added in #12
    • ~Change order: POST https://develop.roblox.com/v1/universes/{universeId}/thumbnails/order~ added in #12
    • ~Delete: DELETE https://develop.roblox.com/v1/universes/{universeId}/thumbnails/{thumbnailId}~ added in #12

    ~Experience developer products:~

    • ~Create: POST https://develop.roblox.com/v1/universes/{universeId}/developerproducts~ added in #32
      • ~Create does not return the ID required to update. The ID can be retrieved via the list endpoint:~ added in #32
        • ~GET https://api.roblox.com/developerproducts?universeId={}&page={}~ added in #32
    • ~Update: POST https://develop.roblox.com/v1/universes/{universeId}/developerproducts/{productId}/update~ added in #32
    • ~No way to delete products~ added in #32
    • ~Icons are uploaded separately and their asset ID is passed to create/update:~ added in #44
      • ~Create: POST https://www.roblox.com/places/developerproduct-icon~ added in #44

    ~Experience badges:~ added in #59

    • ~Create: POST https://badges.roblox.com/v1/universes/{universeId}/badges~
    • ~Update config: PATCH https://badges.roblox.com/v1/badges/{badgeId}~
    • ~Update icon: POST https://publish.roblox.com/v1/badges/{badgeId}/icon~
    • ~No way to delete badges, but they can be marked as disabled with the update endpoint~
    • ~Costs Robux so there should be a warning or something before creating~

    ~Experience game passes:~ added in #45

    • ~Create: POST https://www.roblox.com/build/doverifiedupload~ added in #45
    • ~Update config: POST https://www.roblox.com/game-pass/update~ added in #45
    • ~Update icon: POST https://publish.roblox.com/v1/game-passes/{gamePassId}/icon~ added in #45
    • ~No way to delete game passes~ added in #45

    ~Experiences:~

    • ~Create (unverified): POST https://api.roblox.com/universes/create~ added in #39
    • ~Update config: PATCH https://develop.roblox.com/v2/universes/{universeId}/configuration~ added in #12
    • ~Delete: reconfigure to set isArchived: true~ added in #39

    ~Places:~

    • ~Create: POST https://www.roblox.com/ide/places/createV2~ added in #39
    • ~Update config: PATCH https://develop.roblox.com/v2/places/{placeId}~ added in #12
    • ~Update file (Open Cloud): POST https://apis.roblox.com/universes/v1/{experienceId}/places/{placeId}/versions~ added in #12
    • ~Update file (old): POST https://data.roblox.com/Data/Upload.ashx~ added in #39
    • ~Delete: POST https://www.roblox.com/universes/removeplace~ added in #39

    Assets (images, audio, etc):

    • See comment below
    enhancement question 
    opened by blake-mealey 4
  • Add support for enabling/disabling the new spatial voice feature

    Add support for enabling/disabling the new spatial voice feature

    Config:

    target:
      experience:
        configuration:
          spatialVoiceEnabled: true # defaults to `false`
    

    This is managed via a separate API surface so it will need a new resource type under the hood:

    • Resource type: spatialVoiceConfiguration
    • Create/update: POST https://voice.roblox.com/v1/settings/universe/{experienceId}
      • JSON body { "optIn": boolean }
    • Delete: update to be disabled
    • Import: GET https://voice.roblox.com/v1/settings/universe/{experienceId}
      • JSON body { "isUniverseEnabledForVoice": boolean }

    The design of the roblox API suggests to me that there will be more settings in the future for how spatial voice is configured. Until then I think this API is fine, but in the future we might refactor to something like:

    target:
      experience:
        spacialVoice:
          enabled: true
          someOtherSetting: false
    
    missing configuration 
    opened by blake-mealey 3
  • update outputs command to be directly usable by Rojo projects

    update outputs command to be directly usable by Rojo projects

    The outputs command currently dumps to a JSON file which is not directly usable by anything. The primary use case I see for the outputs file is for automated consumption by Rojo projects. Therefore, there should be a way to produce a file that is Rojo-supported.

    Additionally, we may need to consider splitting place file uploads from the rest of the deployment phase (e.g. mantle prepare and mantle publish) so that we can avoid the chicken-and-egg problem here.

    enhancement question 
    opened by blake-mealey 3
  • improve performance by making Roblox API requests async and running them in parallel when possible

    improve performance by making Roblox API requests async and running them in parallel when possible

    Since #16, Tokio has been added for making asynchronous requests to AWS. We can use this to improve the performance of deploys by parallelizing Roblox API requests. We will have to run the requests in batches and only run the next N requests which are not dependent on each other.

    enhancement code quality 
    opened by blake-mealey 3
  • Mantle 0.11.5 does not work on Linux

    Mantle 0.11.5 does not work on Linux

    Reported in the discord:

    Run: mantle --version

    Outputs: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

    bug 
    opened by blake-mealey 2
  • Allow multiple ROBLOSECURITY tokens to be used for uploads

    Allow multiple ROBLOSECURITY tokens to be used for uploads

    What type of feature request is this?

    • [ ] Mantle doesn't support a Roblox feature I would like to use
    • [x] Mantle CLI improvement
    • [ ] Other

    Describe your problem There is a per-account monthly audio limit of 10 sounds without ID verification, or 100 sounds with ID verification. Describe the solution you'd like I'd like to be able to pass multiple ROBLOSECURITY tokens to Mantle. When one token lacks permission or upload capacity, another would be used.

    enhancement 
    opened by Qualadore 1
  • Add support for .env files

    Add support for .env files

    What type of feature request is this?

    • [ ] Mantle doesn't support a Roblox feature I would like to use
    • [x] Mantle CLI improvement
    • [ ] Other

    Describe your problem Currently Mantle doesn't support loading remote state credentials without modifying your system user's AWS credentials file. This isn't scoped to the project you're working on and is a bit cumbersome.

    Describe the solution you'd like It would be great if Mantle could support loading remote state credentials (and any other environment-specific settings) via the industry-standard .env file. Additionally, prefixing .env variable names with MANTLE_ would allow other tools in the project to use different sets of AWS credentials.

    enhancement next 
    opened by TreehouseFalcon 1
  • Add support for thumbnail alt text

    Add support for thumbnail alt text

    What type of feature request is this?

    • [x] Mantle doesn't support a Roblox feature I would like to use
    • [ ] Mantle CLI improvement
    • [ ] Other

    Describe your problem

    New feature: https://devforum.roblox.com/t/alt-text-for-experience-thumbnails/2066564

    Describe the solution you'd like

    Add an option for thumbnail alt text

    enhancement 
    opened by blake-mealey 0
  • Support configuration for place templates

    Support configuration for place templates

    What type of feature request is this? Mantle doesn't support a Roblox feature I would like to use

    I'd like mantle to support configuring "Allow this place to be copied as a template using the Create Place API in your experience." and "Allow this place to be updated using the Save Place API in your experience." image These settings are used to create games that create brand new Roblox places from a "template" place, which is a feature used in a few building games to persist players builds

    enhancement missing configuration 
    opened by fewkz 1
  • Automatic retries for obscure failures

    Automatic retries for obscure failures

    What type of feature request is this?

    • [ ] Mantle doesn't support a Roblox feature I would like to use
    • [x] Mantle CLI improvement
    • [ ] Other

    Describe your problem Sometimes Roblox APIs fail with no meaningful reason, e.g. this integration test run: https://github.com/blake-mealey/mantle/runs/6960870004?check_suite_focus=true

    Describe the solution you'd like Mantle could automatically retry failed requests 1 or 2 times when the status code was 500.

    enhancement 
    opened by blake-mealey 0
  • Consider replacing the environment overrides properties with variables

    Consider replacing the environment overrides properties with variables

    What type of feature request is this?

    • [ ] Mantle doesn't support a Roblox feature I would like to use
    • [ ] Mantle CLI improvement
    • [X] Mantle config improvement
    • [ ] Other

    Describe your problem The current environment overrides configuration options are limited and require lots of boilerplate which makes it harder to read.

    The targetOverrides provides full flexibility at the cost of making it hard to add simple things and by reducing DRYness. As a result, the targetNamePrefix and targetAccess properties were added as shorthands to targetOverrides modifications. This is not a scalable approach to the config format.

    Describe the solution you'd like Switch to a variable-based approach, where Mantle provides a simple variable expansion to the user's config. Mantle will provide a set of default variables (like environmentLabel) and will allow the user to define their own variables per environment via a variables dictionary property on the environment object.

    environments:
     - label: dev
       variables:
         environmentPostfix: ' - Development'
         playability: public
     - label: prod
       variables:
         environmentPostfix: ''
         playability: 
    target:
      experience:
        configuration:
          playability: $playability
        places:
          start:
            configuration:
              name: My Game$environmentPostfix
    

    In order for this to work we would need to perform the variable expansion before parsing the config with serde. To do this we could do an initial parse of just the environments property (without any expansion), expand variables on the whole file's contents, then parse with serde.

    To make this more useful and powerful we could also allow some simple expressions:

    target:
      experience:
        places:
          start:
            configuration:
              name: My Game${ if(ne($environmentLabel, 'prod'), concat(' [', upper($environmentLabel), ']')) }
              name: My Game${ if $environmentLabel != 'prod' then ' [$environmentLabel]' }
    
    enhancement next 
    opened by blake-mealey 1
Releases(v0.11.5)
  • v0.11.5(Nov 23, 2022)

  • v0.11.4(Nov 14, 2022)

  • v0.11.3(Aug 19, 2022)

  • v0.11.2(Jun 17, 2022)

  • v0.11.1(Mar 13, 2022)

    What's Changed

    This version adds two main features:

    • New mantle state commands for downloading and uploading state files and the option to change the key used for local state files
    • Support for the recent badge and audio pricing and quotas changes

    PRs:

    • add generated file header to state files by @blake-mealey in https://github.com/blake-mealey/mantle/pull/129
    • add state upload and state download commands by @blake-mealey in https://github.com/blake-mealey/mantle/pull/130
    • unify state management and local state key config by @blake-mealey in https://github.com/blake-mealey/mantle/pull/131
    • correctly implement get_create_price for badges by @blake-mealey in https://github.com/blake-mealey/mantle/pull/138
    • handle audio upload quotas correctly by @blake-mealey in https://github.com/blake-mealey/mantle/pull/139
    • updated docs to match new free audio behaviour by @blake-mealey in https://github.com/blake-mealey/mantle/pull/140
    • fix the local state config api to work for both default and custom formats by @blake-mealey in https://github.com/blake-mealey/mantle/pull/141

    Full Changelog: https://github.com/blake-mealey/mantle/compare/v0.11.0...v0.11.1

    Source code(tar.gz)
    Source code(zip)
    mantle-linux.zip(5.54 MB)
    mantle-macos.zip(4.30 MB)
    mantle-win64.zip(7.33 MB)
    schema.json(48.38 KB)
  • v0.11.0(Feb 1, 2022)

    ⚠️ Breaking changes ⚠️

    What's Changed

    • improve html response error messages by @blake-mealey in https://github.com/blake-mealey/mantle/pull/111
    • Add issue templates by @blake-mealey in https://github.com/blake-mealey/mantle/pull/121
    • add support for reading roblosecurity from roblox studio user on macos by @blake-mealey in https://github.com/blake-mealey/mantle/pull/120
    • generate json schema of configuration file format by @blake-mealey in https://github.com/blake-mealey/mantle/pull/123
    • BREAKING: improve config schema consistency by @blake-mealey in https://github.com/blake-mealey/mantle/pull/124
    • generate schema in workflows by @blake-mealey in https://github.com/blake-mealey/mantle/pull/125

    Full Changelog: https://github.com/blake-mealey/mantle/compare/v0.10.8...v0.11.0

    Migrating from 0.10.x

    1. Rename environments.*.name to environments.*.label
    2. Rename environments.*.overrides to environments.*.targetOverrides
    3. Move target.experience.configuration.icon to target.experience.icon
    4. Move target.experience.configuration.thumbnails to target.experience.thumbnails
    5. Replace target.experience.configuration.paidAccessPrice with new format:
    # disabled
    target:
      experience:
        configuration:
          paidAccess: disabled
    # enabled with price
    target:
      experience:
        configuration:
          paidAccess:
            price: 50
    
    1. Replace target.experience.configuration.privateServerPrice with new format:
    # disabled
    target:
      experience:
        configuration:
          privateServers: disabled
    # enabled with price
    target:
      experience:
        configuration:
          privateServers:
            price: 50
    # free
    target:
      experience:
        configuration:
          privateServers: free
    
    Source code(tar.gz)
    Source code(zip)
    mantle-linux.zip(5.87 MB)
    mantle-macos.zip(4.55 MB)
    mantle-win64.zip(7.75 MB)
    schema.json(48.01 KB)
  • v0.10.8(Jan 16, 2022)

  • v0.10.7(Jan 16, 2022)

  • v0.10.6(Jan 5, 2022)

  • v0.10.5(Dec 25, 2021)

  • v0.10.4(Dec 25, 2021)

  • v0.10.3(Dec 23, 2021)

  • v0.10.2(Dec 21, 2021)

  • v0.10.1(Nov 29, 2021)

    What's Changed

    • use studio roblosecurity if no env var is present by @blake-mealey in https://github.com/blake-mealey/mantle/pull/86
    • added target results logs with links to experience and places by @blake-mealey in https://github.com/blake-mealey/mantle/pull/87
    • switch to reqwest library for async requests by @blake-mealey in https://github.com/blake-mealey/mantle/pull/92
    • rename --experience-id to --target-id by @blake-mealey in https://github.com/blake-mealey/mantle/pull/94
      • ⚠ although this is technically a breaking change, it was considered a bug fix since this rename was supposed to take place before the 0.10.0 release
    • keep resources in state if they fail to delete after destroy by @blake-mealey in https://github.com/blake-mealey/mantle/pull/93

    Full Changelog: https://github.com/blake-mealey/mantle/compare/v0.10.0...v0.10.1

    Source code(tar.gz)
    Source code(zip)
    mantle-linux.zip(5.29 MB)
    mantle-macos.zip(3.99 MB)
    mantle-win64.zip(6.92 MB)
  • v0.10.0(Nov 20, 2021)

    ⚠ Many breaking changes. This release should hopefully stabilize most APIs going forward

    What's Changed

    • replace partially-managed experience and places with import command by @blake-mealey in https://github.com/blake-mealey/mantle/pull/73
    • renamed deployments to environments, added versioning to state files by @blake-mealey in https://github.com/blake-mealey/mantle/pull/74
    • fixed using incorrect vertical line character in logging by @blake-mealey in https://github.com/blake-mealey/mantle/pull/75
    • replace templates configuration with target and refactor to support future target types by @blake-mealey in https://github.com/blake-mealey/mantle/pull/76
    • add support for group ownership and payment source configuration by @blake-mealey in https://github.com/blake-mealey/mantle/pull/77
    • add support for social links by @blake-mealey in https://github.com/blake-mealey/mantle/pull/78
    • fully support avatar experience configuration and improve configuration and activation resource lifecycles by @blake-mealey in https://github.com/blake-mealey/mantle/pull/81
    • Refactor internal resources API to be safer by @blake-mealey in https://github.com/blake-mealey/mantle/pull/82
    • cleanup inputs for products, passes, and badges by @blake-mealey in https://github.com/blake-mealey/mantle/pull/83

    Full Changelog: https://github.com/blake-mealey/mantle/compare/v0.9.0...v0.10.0

    Source code(tar.gz)
    Source code(zip)
    mantle-linux.zip(5.49 MB)
    mantle-macos.zip(3.98 MB)
    mantle-win64.zip(6.73 MB)
  • v0.9.0(Nov 16, 2021)

  • v0.8.2(Nov 16, 2021)

    What's Changed

    • remove icon from experience when deleted by @blake-mealey in https://github.com/blake-mealey/rocat/pull/54
    • add support for badges by @blake-mealey in https://github.com/blake-mealey/rocat/pull/59
    • add support for image game assets by @blake-mealey in https://github.com/blake-mealey/rocat/pull/66
    • add support for audio assets by @blake-mealey in https://github.com/blake-mealey/rocat/pull/67

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.8.1...v0.8.2

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(5.26 MB)
    rocat-macos.zip(3.75 MB)
    rocat-win64.zip(6.30 MB)
  • v0.8.1(Nov 13, 2021)

  • v0.8.0(Nov 13, 2021)

    ⚠ Breaking change: move templates.experience.developerProducts to templates.products and rename resource types in state files: experienceDeveloperProduct -> developerProduct and experienceDeveloperProductIcon -> developerProductIcon

    What's Changed

    • add developer product icon support by @blake-mealey in https://github.com/blake-mealey/rocat/pull/44
    • add support for game passes by @blake-mealey in https://github.com/blake-mealey/rocat/pull/45
    • added destroy command by @blake-mealey in https://github.com/blake-mealey/rocat/pull/46
    • Breaking change: move products config from templates.experience.developerProducts to template.products by @blake-mealey in https://github.com/blake-mealey/rocat/pull/49

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.7.0...v0.8.0

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(5.14 MB)
    rocat-macos.zip(3.64 MB)
    rocat-win64.zip(6.09 MB)
  • v0.7.0(Nov 12, 2021)

    What's Changed

    • removed unnecessary ResourceManager struct by @blake-mealey in https://github.com/blake-mealey/rocat/pull/36
    • added deployment option as alternative to branches field by @blake-mealey in https://github.com/blake-mealey/rocat/pull/37
    • added highlights to logging to improve readability by @blake-mealey in https://github.com/blake-mealey/rocat/pull/38
    • Breaking change: add support for creating experiences and places by @blake-mealey in https://github.com/blake-mealey/rocat/pull/39

    This release adds a few breaking changes:

    • Old state files are incompatible but can be easily migrated by changing all resource type names from snake_case to camelCase.
    • ROBLOX_API_KEY is no longer used for any operations. You must use ROBLOSECURITY now.
    • deployMode is no longer supported. All place deploys will now be in "publish" mode.

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.6.1...v0.7.0

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(4.72 MB)
    rocat-macos.zip(3.30 MB)
    rocat-win64.zip(5.46 MB)
  • v0.6.1(Nov 11, 2021)

    What's Changed

    • make logging consistent by @blake-mealey in https://github.com/blake-mealey/rocat/pull/28
    • added outputs command by @blake-mealey in https://github.com/blake-mealey/rocat/pull/29
    • improved help for subcommands by @blake-mealey in https://github.com/blake-mealey/rocat/pull/30
    • add partial developer product support by @blake-mealey in https://github.com/blake-mealey/rocat/pull/32
    • fix broken git tagging feature by @blake-mealey in https://github.com/blake-mealey/rocat/pull/33

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.6.0...v0.6.1

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(4.71 MB)
    rocat-macos.zip(3.30 MB)
    rocat-win64.zip(5.45 MB)
  • v0.6.0(Nov 8, 2021)

    What's Changed

    • print succeeded no changes required message if no changes were made by @blake-mealey in https://github.com/blake-mealey/rocat/pull/15
    • Add remote state management by @blake-mealey in https://github.com/blake-mealey/rocat/pull/16
    • Breaking change: move placeFiles config into templates.places.file config by @blake-mealey in https://github.com/blake-mealey/rocat/pull/17

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.5.1...v0.6.0

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(4.56 MB)
    rocat-macos.zip(3.17 MB)
    rocat-win64.zip(5.22 MB)
  • v0.5.1(Nov 7, 2021)

  • v0.5.0(Nov 7, 2021)

    ⚠ This release breaks multi-deployment configurations (the state file format does not support multiple deployments). Fixed in the next version. ⚠ This release breaks git tagging. Fixed in v0.6.1.

    What's Changed

    • Breaking change: Refactor to focus on infra-as-code by @blake-mealey in https://github.com/blake-mealey/rocat/pull/12

    Full Changelog: https://github.com/blake-mealey/rocat/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
    rocat-linux.zip(2.83 MB)
    rocat-macos.zip(1.70 MB)
    rocat-win64.zip(2.74 MB)
  • v0.4.0(Nov 3, 2021)

  • v0.3.0(Nov 3, 2021)

  • v0.2.0(Oct 26, 2021)

  • v0.1.5(Oct 26, 2021)

  • v0.1.4(Oct 25, 2021)

  • v0.1.3(Oct 24, 2021)

Habitat is open source software that creates platform-independent build artifacts and provides built-in deployment and management capabilities.

Habitat is open source software that creates platform-independent build artifacts and provides built-in deployment and management capabilities. The go

Habitat 2.4k Dec 27, 2022
Bringing immutable infrastructure to the desktop!

Normal people don't reinstall their OS from scratch very often. When they do, the moment they reach that pristine desktop or terminal after a clean in

null 83 Dec 27, 2022
Qovery Engine is an open-source abstraction layer library that turns easy apps deployment on AWS, GCP, Azure, and other Cloud providers in just a few minutes.

Qovery Engine is an open-source abstraction layer library that turns easy apps deployment on AWS, GCP, Azure, and other Cloud providers in just a few minutes.

Qovery 1.9k Jan 4, 2023
⚪️ `wasm-pack build` executed in remote deployment

rsw-node wasm-pack build executed in remote deployment, use with vite-plugin-rsw. Pre-installed rust nodejs wasm-pack: npm install -g wasm-pack vite-p

Len C... 10 Jul 6, 2022
Tool to monitor the statistics and the energy consumption of docker containers

Docker Activity Docker activity is a tool to monitor the statistics of your containers and output their energy consumption. Warning It's still in earl

Jérémie Drouet 39 Dec 6, 2022
Runc - CLI tool for spawning and running containers according to the OCI specification

runc Introduction runc is a CLI tool for spawning and running containers on Linux according to the OCI specification. Releases You can find official r

Open Container Initiative 9.9k Jan 5, 2023
Shallow Container is a light-weight container tool written in Rust.

Shallow Container is a light-weight container tool written in Rust. It is totally for proof-of-concept and may not suit for production environment.

Rui Li 14 Apr 8, 2022
A lite tool to make systemd work in any container(Windows Subsystem for Linux 2, Docker, Podman, etc.)

Angea Naming from hydrangea(アジサイ) A lite tool to make systemd work in any container(Windows Subsystem for Linux 2, Docker, Podman, etc.) WSL1 is not s

いんしさくら 16 Dec 5, 2022
insject is a tool for poking at containers. It enables you to run an arbitrary command in a container or any mix of Linux namespaces.

Insject insject is a tool for poking at containers. It enables you to run an arbitrary command in a container or any mix of Linux namespaces. It suppo

NCC Group Plc 44 Nov 9, 2022
Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries. Supports openssl and diesel crates.

rust-musl-builder: Docker container for easily building static Rust binaries Source on GitHub Changelog UPDATED: Major updates in this release which m

Eric Kidd 1.3k Jan 1, 2023
A buildpack for Rust applications on Heroku, with full support for Rustup, cargo and build caching.

Heroku buildpack for Rust This is a Heroku buildpack for Rust with support for cargo and rustup. Features include: Caching of builds between deploymen

Eric Kidd 502 Nov 7, 2022
Valheim Docker powered by Odin. The Valheim dedicated gameserver manager which is designed with resiliency in mind by providing automatic updates, world backup support, and a user friendly cli interface.

Valheim Docker If you are looking for a guide on how to get started click here Mod Support! It is supported to launch the server with BepInEx but!!!!!

Michael 657 Dec 30, 2022
oci-image and oci-runtime spec in rust.

oci-lib Oci-Spec for your container runtime or container registry. Oci-lib is a rust port for original oci spec written in go. Following crate contain

flouthoc 12 Mar 10, 2022
Desktop launcher to install and use Holochain apps locally

Holochain Launcher A cross-platform executable that launches a local Holochain conductor, and installs and opens apps. Feedback is immensely welcome i

Holochain 58 Dec 30, 2022
Rust Kubernetes client and controller runtime

kube-rs Rust client for Kubernetes in the style of a more generic client-go, a runtime abstraction inspired by controller-runtime, and a derive macro

kube-rs 1.8k Jan 8, 2023
Containerize your development and continuous integration environments. 🥂

Toast ?? Toast is a tool for doing work in containers. You define tasks in a YAML file called a toastfile, and Toast runs them in a containerized envi

Stephan Boyer 1.4k Dec 27, 2022
Inspect and dump OCI images.

reinlinsen ?? rl is a tool to inspect and dump OCI images or single image layers. Installation From source If you have cargo installed you can just ru

Tobias Brumhard 5 May 11, 2023
An infrastructure-as-code and deployment tool for Roblox.

Mantle ?? An infrastructure-as-code and deployment tool for Roblox. ⚠ Please note that this is an early release and the API is unstable. Releases foll

Blake Mealey 44 Dec 22, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Warp is a blazingly fast, Rust-based terminal that makes you and your team more productive at running, debugging, and deploying code and infrastructure.

Warp is a blazingly fast, Rust-based terminal that makes you and your team more productive at running, debugging, and deploying code and infrastructure.

Warp 10.4k Jan 4, 2023