diff --git a/bin/watch b/bin/watch index dda345b6..8a2360b1 100755 --- a/bin/watch +++ b/bin/watch @@ -7,7 +7,7 @@ from time import sleep def build_docs(): - subprocess.check_call("bin/build_docs") + subprocess.run("bin/build_docs") def refresh_assets(): diff --git a/docs/conf.py b/docs/conf.py index f0a19823..984c80e1 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,13 +21,14 @@ # -- Project information ----------------------------------------------------- -project = "Docs" +project = "Documentation" +html_title = "Hypernode Documentation" current_year = datetime.now().year copyright = f"{current_year}, Hypernode" author = "Hypernode" # The full version, including alpha/beta/rc tags -release = "dev" +release = "latest" # -- General configuration --------------------------------------------------- diff --git a/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md b/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md index 1ad73561..bd56c277 100644 --- a/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md +++ b/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md @@ -100,7 +100,7 @@ aws s3 sync var/import_export s3://my_bucket_name/import_export Both methods are significantly faster than Magento’s built-in sync, as aws s3 sync handles uploads concurrently. ```{tip} -More information about the `hypernode-object-storage` command can be found in the [Object Storage article](../../hypernode-platform/object-storage/getting-started-with-object-storage.md). +More information about the `hypernode-object-storage` commands can be found in the [Object Storage documentation](../../hypernode-platform/object-storage.md). ``` ## The storage flag file in the bucket diff --git a/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md b/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md index 30869f96..825cdd97 100644 --- a/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md +++ b/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md @@ -96,7 +96,7 @@ aws s3 sync public/media/ s3://bucket_name/media/ ``` ```{tip} -More information about the `hypernode-object-storage` command can be found in the [Object Storage article](../../hypernode-platform/object-storage/getting-started-with-object-storage.md). +More information about the `hypernode-object-storage` command can be found in the [Object Storage documentation](../../hypernode-platform/object-storage.md). ``` ## Serving assets from your S3 bucket diff --git a/docs/hypernode-platform/object-storage.md b/docs/hypernode-platform/object-storage.md index c18e8a3b..4851d89c 100644 --- a/docs/hypernode-platform/object-storage.md +++ b/docs/hypernode-platform/object-storage.md @@ -10,11 +10,24 @@ redirect_from: # Object Storage +Hypernode Object Storage provides an option to store media files, assets, backups, documents, etc in a persistent, remote storage container. + +Object storage eliminates redundancy and provides a centralized, scalable solution for storing application assets, session data, and backups. + +By default, media files are stored in the same filesystem that contains the application. This is inefficient for complex, multi-server configurations, and can result in degraded performance when sharing resources. + +With Object Storage you get: + +- Effortless Data Sharing – Seamless access across all Hypernodes +- Full Access Control & Security – Secure and manage your data with ease +- Safe Backup & Monitoring – Ensure reliability with built-in insights + ```{toctree} --- caption: Table of Contents maxdepth: 1 glob: --- +object-storage/getting-started object-storage/* ``` diff --git a/docs/hypernode-platform/object-storage/_res/stu_screenshot.png b/docs/hypernode-platform/object-storage/_res/stu_screenshot.png new file mode 100644 index 00000000..3bb560d5 Binary files /dev/null and b/docs/hypernode-platform/object-storage/_res/stu_screenshot.png differ diff --git a/docs/hypernode-platform/object-storage/cancellation.md b/docs/hypernode-platform/object-storage/cancellation.md new file mode 100644 index 00000000..aa983931 --- /dev/null +++ b/docs/hypernode-platform/object-storage/cancellation.md @@ -0,0 +1,15 @@ +--- +myst: + html_meta: + description: Learn how to cancel Hypernode Object Storage + title: Hypernode Object Storage | Cancellation +--- + +# Cancellation + +To cancel an Object Storage Workspace, you can SSH into the Hypernode that is linked to that Object Storage and run `hypernode-object-storage cancel`. + +```{note} +The cancellation will be in effect from the end of the month. +Also if you change your mind or forgot to pull some data. It will still be available for 7 days after the cancellation. You can always reach out to the support team for help if that happens. +``` diff --git a/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md b/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md deleted file mode 100644 index 627d0827..00000000 --- a/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -myst: - html_meta: - description: Getting started with Object Storage - title: Hypernode Object Storage | Getting Started -redirect_from: - - /en/hypernode/object-storage/getting-started-with-object-storage/ ---- - -# What is Hypernode Object Storage? - -Hypernode Object Storage provides an option to store media files, assets, backups, documents, etc in a persistent, remote storage container. - -Object storage eliminates redundancy and provides a centralized, scalable solution for storing application assets, session data, and backups. - -By default, media files are stored in the same filesystem that contains the application. This is inefficient for complex, multi-server configurations, and can result in degraded performance when sharing resources. - -With Object Storage you get: - -- Effortless Data Sharing – Seamless access across all Hypernodes -- Full Access Control & Security – Secure and manage your data with ease -- Safe Backup & Monitoring – Ensure reliability with built-in insights - -# Getting started with Object Storage - -## CLI option - -You can run the CLI command with the `--help` command to find out about all the options and arguments. - -```bash -hypernode-object-storage --help -``` - -### Creating a Hypernode Object Storage Workspace - -1. SSH into your server. -1. Run `hypernode-object-storage create` -1. Fill in the prompts with a name and desired storage. -1. Confirm your order and give it a few minutes before your storage is ready. - -Note: You can use one object storage across multiple Hypernodes. But you can only use one object storage space per Hypernode. - -### Retrieve object storage - -1. Run `hypernode-object-storage info` -1. If you want to retrieve your credentials for the workspace pass in the flag `--with-credentials`. - -The output should look like the following: - -```console -app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage info -+--------------------------------------+--------------+--------+------------+----------------+---------------+---------------+ -| UUID | Name | Plan | Hypernodes | Management URL | Access Key | Secret Key | -+--------------------------------------+--------------+--------+------------+----------------+---------------+---------------+ -| d8770125-6c90-4770-b00f-1716f699990a | test-storage | OS50GB | testnode12 | **sensitive** | **sensitive** | **sensitive** | -+--------------------------------------+--------------+--------+------------+----------------+---------------+---------------+ -``` - -You can use the credentials and the URL now to configure remote storage for your application with the help of the following articles: - -1. [How to configure remote storage for Magento 2.x](../../ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md) -1. [How to configure remote storage for Shopware 6.x](../../ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md) - -### Cancel/Delete Object Storage - -To cancel an Object Storage, you can ssh into the Hypernode that is linked to that Object Storage and run `hypernode-object-storage cancel` - -```{note} -The cancellation will be in effect from the end of the month. -Also if you change your mind or forgot to pull some data. It will still be available for 7 days after the cancellation. You can always reach out to the support team for help if that happens. -``` - -### Managing objects in object storage - -You can manage your objects using the `hypernode-object-storage objects` subcommand. -It supports all common operations--listing, copying, moving, and deleting files--while also allowing you to sync files in the background and monitor the progress of an ongoing sync. - -```console -app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects --help -usage: hypernode-object-storage objects [-h] {sync,cp,ls,mv,rm,show} ... - -Manage objects in object storage - -positional arguments: - {sync,cp,ls,mv,rm,show} - sync Synchronize files between a local directory and an object storage location - cp Copy a file or object from one location to another - ls List objects in an S3 bucket or folder - mv Move or rename a file or object - rm Delete an object from S3 - show Display the current status of an ongoing sync process - -options: - -h, --help show this help message and exit -``` - -It is important to note that `hypernode-object-storage objects` supports all optional flags available in `aws s3`, allowing you to customize its behavior for advanced configurations. - -#### Syncing files and monitoring progress - -Syncing files between your local directory and object storage is simple. Run the following command: - -```console -app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects sync /example/local/path/ s3://example/bucket/uri/ -Syncing objects from /example/local/path/ to s3://example/bucket/uri/... -Sync process started with PID 1234 in the background. -``` - -The `sync` operation runs in the background, and you can monitor its progress by using the `show` command, for example: - -```console -app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects show 1234 -Completed 9.7 GiB/~30.0 GiB (118.2 MiB/s) with ~5 file(s) remaining (calculating...) -``` - -If you run the `show` command after the sync operation has finished, you’ll see output like this: - -```console -app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects show 1234 -Process 1234 does not exist anymore -``` - -## UI option - Control Panel - -Coming soon diff --git a/docs/hypernode-platform/object-storage/getting-started.md b/docs/hypernode-platform/object-storage/getting-started.md new file mode 100644 index 00000000..80bb122b --- /dev/null +++ b/docs/hypernode-platform/object-storage/getting-started.md @@ -0,0 +1,68 @@ +--- +myst: + html_meta: + description: Getting started with Object Storage + title: Hypernode Object Storage | Getting Started +redirect_from: + - hypernode-platform/object-storage/getting-started-with-object-storage +--- + +# Getting started with Hypernode Object Storage + +You can run the CLI command with the `--help` flag to find out about all the options and arguments. + +```bash +hypernode-object-storage --help +``` + +## Creating a Hypernode Object Storage Workspace + +**Command-line interface (CLI)** + +1. SSH into your server. +1. Run `hypernode-object-storage create` +1. Fill in the prompts with a name and desired storage. +1. Confirm your order and give it a few minutes before your storage is ready. + +**Control Panel** + +1. Go to the [Control Panel](https://my.hypernode.com). +1. Click the **Order a workspace** button in the top-right. +1. Select the desired options for your workspace and proceed to checkout. + +```{note} +You can use one object storage across multiple Hypernodes. But you can only use one object storage space per Hypernode. +``` + +## Retrieve object storage information + +**Command-line interface (CLI)** + +1. Run `hypernode-object-storage info` +1. If you want to retrieve your credentials for the workspace pass in the flag `--with-credentials`. + +The output should look like the following: + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage info +UUID | d8770125-6c90-4770-b00f-1716f699990a +Name | example-storage +Plan | OS50GB +Versioning | Disabled +Hypernodes | example +Endpoint URL | **sensitive** +Access Key | **sensitive** +Secret Key | **sensitive** +``` + +**Control Panel** + +1. Go to the [Control Panel](https://my.hypernode.com). +1. Click on the **Object Storage** tab in the left sidebar. +1. Click your workspace. +1. Click the **Show credentials** button in the top-right corner. + +You can use the credentials and the URL now to configure remote storage for your application with the help of the following articles: + +1. [How to configure remote storage for Magento 2.x](../../ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md) +1. [How to configure remote storage for Shopware 6.x](../../ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md) diff --git a/docs/hypernode-platform/object-storage/managing-objects.md b/docs/hypernode-platform/object-storage/managing-objects.md new file mode 100644 index 00000000..b008cef5 --- /dev/null +++ b/docs/hypernode-platform/object-storage/managing-objects.md @@ -0,0 +1,56 @@ +--- +myst: + html_meta: + description: Learn how to manage objects in Hypernode Object Storage + title: Hypernode Object Storage | Managing Objects +--- + +# Managing Objects + +You can manage your objects using the `hypernode-object-storage objects` subcommand. +It supports all common operations--listing, copying, moving, and deleting files--while also allowing you to sync files in the background and monitor the progress of an ongoing sync. + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects --help +usage: hypernode-object-storage objects [-h] {sync,cp,ls,mv,rm,show} ... + +Manage objects in object storage + +positional arguments: + {sync,cp,ls,mv,rm,show} + sync Synchronize files between a local directory and an object storage location + cp Copy a file or object from one location to another + ls List objects in an S3 bucket or folder + mv Move or rename a file or object + rm Delete an object from S3 + show Display the current status of an ongoing sync process + +options: + -h, --help show this help message and exit +``` + +It is important to note that `hypernode-object-storage objects` supports all optional flags available in `aws s3`, allowing you to customize its behavior for advanced configurations. + +## Syncing files and monitoring progress + +Syncing files between your local directory and object storage is simple. Run the following command: + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects sync /example/local/path/ s3://example/bucket/uri/ +Syncing objects from /example/local/path/ to s3://example/bucket/uri/... +Sync process started with PID 1234 in the background. +``` + +The `sync` operation runs in the background, and you can monitor its progress by using the `show` command, for example: + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects show 1234 +Completed 9.7 GiB/~30.0 GiB (118.2 MiB/s) with ~5 file(s) remaining (calculating...) +``` + +If you run the `show` command after the sync operation has finished, you’ll see output like this: + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage objects show 1234 +Process 1234 does not exist anymore +``` diff --git a/docs/hypernode-platform/object-storage/object-versioning.md b/docs/hypernode-platform/object-storage/object-versioning.md new file mode 100644 index 00000000..de4b4e19 --- /dev/null +++ b/docs/hypernode-platform/object-storage/object-versioning.md @@ -0,0 +1,53 @@ +--- +myst: + html_meta: + description: Learn how to enable and use Hypernode Object Storage Versioning + title: Hypernode Object Storage | Object Versioning +--- + +# Object Versioning + +With object versioning, you can keep track of changes made to your objects in the Object Storage workspace. This allows you to restore previous versions of your objects when needed. + +## Enabling Object Versioning + +To enable object versioning, you can use the `update` command with the `--enable-versioning` flag. This will enable versioning for all objects in your Object Storage workspace. + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage update --enable-versioning +Enabling versioning... +``` + +It's also possible to enable versioning in the Control Panel. To do this, go to the Object Storage workspace you want to enable versioning for, and flip the Object Versioning toggle. + +```{note} +Object versioning increases the storage space used by your objects. Each version of an object is stored separately, so if you have a lot of changes to your objects, you may need a bigger storage plan at some point. +``` + +## Restoring object revisions + +With the `restore` command, you can restore an object to the state it was in at a specific point in time. You can specify the date and time of the revision you want to restore, as well as the object path. + +The date and time should be in the format `YYYY-MM-DD HH:MM:SS`. The object path can be the full path to the object you want to restore or a path to a directory. If you specify a directory, all objects in that directory will be restored to the specified revision. + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage restore main "2025-04-24 06:00:00" media/catalog/product/e/x/example.jpg +``` + +By default, the `restore` command will only show what it would do without actually restoring the objects. To actually restore the objects, you need to add the `--apply` flag. + +```{note} +The `restore` command restores objects in place. This means that the current version of the object will be replaced with the version you are restoring. If you want to keep the current version of the object (or directory), you should make a copy of it before running the `restore` command. +``` + +## Interactively exploring revisions + +You can also explore your objects and their revisions interactively using the `explore` subcommand. This will open a terminal UI file browser where you can navigate through your objects and their versions. + +```console +app@abcdef-example-magweb-cmbl:~$ hypernode-object-storage explore +``` + +Here's an example of how the terminal UI looks when you run the `explore` command: + +![](_res/stu_screenshot.png)