Skip to content

Commit 611d395

Browse files
author
Jonathan Visser
committed
Merge master into Remove-old-documentation-regarding-hypernode-deploy-v1
2 parents fe9f5a6 + aaa50d9 commit 611d395

35 files changed

Lines changed: 279 additions & 73 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ pub
77
.ssh
88
.vscode
99
*.css.map
10+
*.br
1011
deployment-report.json
1112
build/

deploy.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
namespace Hypernode\DeployConfiguration;
66

7-
use function Deployer\after;
8-
use function Deployer\run;
9-
use function Deployer\task;
10-
use function Deployer\test;
7+
use function Deployer\{run, task, test, within, set};
118

129
$DOCKER_HOST = '172.17.0.2';
1310
$DOCKER_WEBROOT = sprintf('/data/web/apps/%s/current/pub', $DOCKER_HOST);
@@ -74,12 +71,29 @@
7471
run('cp {{release_path}}/etc/nginx/server.redirects.conf /data/web/nginx/server.redirects.conf');
7572
});
7673

74+
// This will pre-compress files using brotli compression so we can serve them directly from nginx
75+
// without needing to compress them on-the-fly.
76+
task('build:compress:brotli', function () {
77+
set('brotli_compression_level', 11);
78+
79+
run('apt update && apt install brotli -y');
80+
within('{{release_or_current_path}}/docs/_build/html', function () {
81+
run('find . -name "*.html" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
82+
run('find . -name "*.css" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
83+
run('find . -name "*.js" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
84+
run('find . -name "*.svg" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
85+
run('find . -name "*.png" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
86+
run('find . -name "*.jpg" -type f -exec brotli -f -q {{brotli_compression_level}} {} \\;');
87+
});
88+
});
89+
7790
$configuration = new Configuration();
7891
$configuration->addBuildTask('node:build:scss');
7992
$configuration->addBuildTask('python:venv:create');
8093
$configuration->addBuildTask('python:venv:requirements');
8194
$configuration->addBuildTask('python:build_documentation');
8295
$configuration->addBuildTask('python:generate_redirects');
96+
$configuration->addBuildTask('build:compress:brotli');
8397
$configuration->addDeployTask('deploy:disable_public');
8498
$configuration->addDeployTask('deploy:hmv_docker');
8599
$configuration->addDeployTask('deploy:docs_vhost:acceptance');
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
myst:
3+
html_meta:
4+
description: Hypernode's policy for customers that wish to run a pentest on their
5+
website
6+
title: Penetration Testing Policy | Security | Hypernode
7+
---
8+
9+
# Customer Pentest Policy
10+
11+
```{important}
12+
This policy is for customers that wish to perform an external penetration test on their own hosting environment. For Unaffiliated third-parties that wish to test the Hypernode platform itself, we have a separate [Responsible Disclosure Policy](responsible-disclosure-policy.md).
13+
```
14+
15+
At Hypernode, we support responsible security testing practices that help customers improve the safety and resilience of their hosted application, and our platform. Customers may conduct penetration tests on their own hosting environments under the following conditions and guidelines.
16+
17+
## Scope of Testing
18+
19+
Penetration testing is only permitted on the customer's *own* hosting space. Testing must not extend to, or affect, any other part of the platform or infrastructure managed by either Hypernode, or other Hypernode customers..
20+
21+
## Requirements
22+
23+
Penetration testing is allowed under the following conditions:
24+
25+
- All pentests must be performed by a reputable, experienced, party.
26+
- You will [inform us](https://www.hypernode.com/en/support/) at least 72 hours ahead of time, and let us know the time, source IP(s) and target of the pentest.
27+
- If the pentest causes, or discovers, any server side issues, you will share the full report of the pentest with us afterwards. You will keep these findings confidential, until we've had the opportunity to assess and address the issue.
28+
29+
We do not allow pentests that:
30+
31+
- Rely on Social Engineering.
32+
- Perform Brute Force testing.
33+
- Test (D)DoS protection or -resilience.
34+
- Test Physical Security of Datacenters, Offices, etc.
35+
- May cause permanent damage to hardware or equipment.
36+
37+
You may wish to add the source IP's of the pentest to the [Hypernode WAF allowlist](./../../best-practices/firewall/ftp-waf-database-allowlist.md), to prevent our automated systems from affecting the test.
38+
39+
## Security Waivers
40+
41+
Hypernode explicitly gives its customers permission to test their own Hypernode hosting environment. If your penetration testing partner still requires a signed waiver, please [contact us](https://www.hypernode.com/en/support/).
42+
43+
# Hypernode's Own Pentest Policy
44+
45+
Hypernode performs regular penetration tests of both the Hypernode hosting platform, and its internal applications like the Hypernode Control Panel. Details about these penetration tests are available for customers [upon request](https://www.hypernode.com/en/support/).

docs/best-practices/performance/how-to-improve-your-magento-search.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
myst:
33
html_meta:
44
description: Improve Magento search speed and relevancy with ElasticSearch or
5-
Sphinx Search. Out-of-box integration on Hypernode Pelican, Falcon and Eagle
6-
plans.
5+
Sphinx Search. Out-of-box integration on Hypernode Falcon and Eagle plans.
76
title: How to improve your Magento search? | Hypernode
87
redirect_from:
98
- /en/best-practices/performance/how-to-improve-your-magento-search/
@@ -14,24 +13,24 @@ redirect_from:
1413

1514
# How to Improve Your Magento Search
1615

17-
The built-in Magento search option is known for its non-existent speed and providing irrelevant search results. Both these aspects have a negative effect on your conversion, because if visitors cant find what theyre looking for, how do you expect them to purchase from your shop? As a developer there are two things you can do;
16+
The built-in Magento search option is known for it's non-existent speed and providing irrelevant search results. Both these aspects have a negative effect on your conversion, because if visitors can't find what they're looking for, how do you expect them to purchase from your shop? As a developer there are two things you can do;
1817

1918
1. Tweak the built-in Magento search option
2019
1. Use an external search engine.
2120

22-
We recommend the latter, and specifically: ElasticSearch. If you have a Magento 2 shop, ElasticSearch has one major advantage: you can use this search engine out-of-the-box, without having to install any extension. On all Hypernode Pelican, Falcon and Eagle plans, ElasticSearch is built-in to your Hypernode. If you are on a formerly known plan like Start or Grow, youll need to either upgrade, or make use of an external search provider. We have arranged special Hypernode discounts with our partner Bonsai, a specialised managed ElasticSearch provider. Ask our support team for the discount code!
21+
We recommend the latter, and specifically: ElasticSearch. If you have a Magento 2 shop, ElasticSearch has one major advantage: you can use this search engine out-of-the-box, without having to install any extension. On all Hypernode Falcon and Eagle plans, ElasticSearch is built-in to your Hypernode. If your plan does not include ElasticSearch, you'll need to either upgrade, or make use of an external search provider. We have arranged special Hypernode discounts with our partner Bonsai, a specialised managed ElasticSearch provider. Ask our support team for the discount code!
2322

24-
Another alternative is Sphinx Search. Sphinx is an open source search engine that improves the search function in your Magento. Sphinx is fast and provides you with relevant search results. There are many external search engines, but Sphinx came out as the best option due to its usability, documentation and speed. Sphinx is supported on your Hypernode (Pelican, Falcon and Eagle plans). You will, however, need extra (paid) plugins for your Magento to make use of Sphinx.
23+
Another alternative is Sphinx Search. Sphinx is an open source search engine that improves the search function in your Magento. Sphinx is fast and provides you with relevant search results. There are many external search engines, but Sphinx came out as the best option due to it's usability, documentation and speed. Sphinx is supported on your Hypernode (Falcon and Eagle plans). You will, however, need extra (paid) plugins for your Magento to make use of Sphinx.
2524

2625
## ElasticSearch
2726

28-
While previously it was already possible to use ElasticSearch with your Hypernode by connecting to an external search provider, we have now made it possible to use ElasticSearch for search in your shop out of the box on Hypernode without requiring any external service or configuration. In [this article](../../hypernode-platform/tools/how-to-use-elasticsearch-on-hypernode.md) well explain a bit more about ElasticSearch and how to enable and configure it.
27+
While previously it was already possible to use ElasticSearch with your Hypernode by connecting to an external search provider, we have now made it possible to use ElasticSearch for search in your shop out of the box on Hypernode without requiring any external service or configuration. In [this article](../../hypernode-platform/tools/how-to-use-elasticsearch-on-hypernode.md) we'll explain a bit more about ElasticSearch and how to enable and configure it.
2928

30-
Please note that due to the relatively heavy resource requirements for ElasticSearch this feature can only be enabled on every plan except the formerly known Grow plan. If you are on a smaller plan and previously already depended on an external paid ElasticSearch provider now might be a good time to consider simplifying your setup.
29+
Please note that due to the relatively heavy resource requirements for ElasticSearch this feature can only be enabled on Falcon and Eagle plans. If you are on a smaller plan and previously already depended on an external paid ElasticSearch provider now might be a good time to consider simplifying your setup.
3130

3231
### ElasticSearch providers
3332

34-
If you are on a lower plan, youll need to either upgrade, or make use of an external search provider. There a several companies you can choose for a monthly subscription:
33+
If you are on a lower plan, you'll need to either upgrade, or make use of an external search provider. There a several companies you can choose for a monthly subscription:
3534

3635
- [Bonsai.io](https://bonsai.io/)
3736
- [Elastic.co](https://www.elastic.co/cloud/as-a-service)
@@ -42,9 +41,9 @@ If you are on a lower plan, you’ll need to either upgrade, or make use of an e
4241

4342
Sphinx indexes up to 10-15 MB of text per second per single CPU core 60+ MB/sec per server. Technically, Sphinx is a standalone software package that provides fast and relevant full-text search functionality to client applications. It was specially designed to integrate well with SQL databases storing the data, and to be easily accessed by scripting languages. However, Sphinx does not depend on – or requires – any specific database to function.
4443

45-
We added support for the Sphinx search indexer on Hypernode Pelican, Falcon and Excellent nodes. Using Sphinx requires the `Mirasvit Sphinx Search Ultimate extension`. This paid extension can be purchased through the [Mirasvit website](https://mirasvit.com/magento-extensions/sphinx-search-ultimate.html). If you have a Magento 2 shop, make sure to use the [specific Magento 2 extension](https://mirasvit.com/magento-2-extensions/sphinx-search-ultimate.html).
44+
We added support for the Sphinx search indexer on Hypernode Falcon and Eagle nodes. Using Sphinx requires the `Mirasvit Sphinx Search Ultimate extension`. This paid extension can be purchased through the [Mirasvit website](https://mirasvit.com/magento-extensions/sphinx-search-ultimate.html). If you have a Magento 2 shop, make sure to use the [specific Magento 2 extension](https://mirasvit.com/magento-2-extensions/sphinx-search-ultimate.html).
4645

47-
More information about using Sphinx can be found in [their documentation](http://sphinxsearch.com/docs/). Cant find an answer to your question? Please contact Mirasvit through their [Support Portal](https://mirasvit.com/contact/).
46+
More information about using Sphinx can be found in [their documentation](http://sphinxsearch.com/docs/). Can't find an answer to your question? Please contact Mirasvit through their [Support Portal](https://mirasvit.com/contact/).
4847

4948
### Configuring Sphinx on Hypernode
5049

@@ -68,7 +67,7 @@ When adjusting the Sphinx settings, you should make use the following informatio
6867

6968
- When using the Mirasvit extension, Magento periodically restarts the Sphinx engine. If this happens too fast, the reload of Sphinx can be ratelimited causing the daemon to stop or to hang. To resolve this issue, whitelist the `Zend_Http_Client` as explained in [the instructions how to prevent a user agent from being rate limited](../../hypernode-platform/nginx/how-to-resolve-rate-limited-requests-429-too-many-requests.md#rate-limiting-for-bots-and-crawlers).
7069
- If your shop is using too much memory, the `searchd` daemon can crash due to OOM. To resolve this upgrade to a bigger Hypernode, or improve the memory print of your webshop.
71-
- The `searchd`daemon is started from the Magento backend, but in case of a server reboot, memory issues or an otherwise very busy server the process kan be killed, causing an interruption in your search functionality. To circumvent these issues, add a cron that checks if the daemon is running and starts it if its not:
70+
- The `searchd`daemon is started from the Magento backend, but in case of a server reboot, memory issues or an otherwise very busy server the process kan be killed, causing an interruption in your search functionality. To circumvent these issues, add a cron that checks if the daemon is running and starts it if it's not:
7271
- For Magento 1:
7372
```text
7473
@reboot chronic flock -E 0 -n ~/.sphinx.lock /usr/bin/searchd --config /data/web/public/var/sphinx/sphinx.conf --nodetach 2>&1 >> /tmp/search.log
@@ -89,4 +88,4 @@ location = /shell/filename.php {
8988

9089
## SOLR
9190

92-
A third option is SOLR. We dont offer SOLR anymore due to low demand. If you want to use SOLR, we recommend using [WebSOLR](https://www.websolr.com/) as a hosted third party service.
91+
A third option is SOLR. We don't offer SOLR anymore due to low demand. If you want to use SOLR, we recommend using [WebSOLR](https://www.websolr.com/) as a hosted third party service.

docs/best-practices/performance/how-to-optimize-the-performance-of-your-magento-shop.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ This happens faster when the Magento shop is not well optimized and it takes a l
190190

191191
To make sure a small set of IP addresses can’t take your shop down we use rate limiting based on IP address. A single IP might use up to 80% of the total PHP-FPM worker capacity available.
192192

193-
On smaller nodes (mostly on Hypernode Start and Grow plans) this can cause errors when working in the Magento admin. To resolve these errors, you can whitelist IP’s to make sure they will not be rate limited when working in the Magento admin backend. If you use nightly product imports through the Magento SOAP API, sometimes you need to whitelist the remote ip of the import tool as well.
193+
On smaller nodes this can cause errors when working in the Magento admin. To resolve these errors, you can whitelist IP’s to make sure they will not be rate limited when working in the Magento admin backend. If you use nightly product imports through the Magento SOAP API, sometimes you need to whitelist the remote ip of the import tool as well.
194194

195195
[To whitelist these IP’s have a look at our article about rate limiting](../../hypernode-platform/nginx/how-to-resolve-rate-limited-requests-429-too-many-requests.md).
196196

docs/best-practices/testing/how-to-go-live-with-your-hypernode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ Note that the time on Hypernode is configured to UTC, so the times used in the c
133133

134134
## Step 11: Configure Backups on Hypernode (Optional)
135135

136-
For Hypernode Pelican, Falcon S (or up) and Eagle hosting plans free backups are available. If you need a backup, contact us via support@hypernode.com. Hypernode Pelican S and Falcon XS (used to be Grow) plans do not have free backups included, but we can make one available for 25 euros excl VAT per backup.
136+
For Hypernode Falcon S (or up) and Eagle hosting plans free backups are available. If you need a backup, contact us via support@hypernode.com.
137137

138138
## Downgrade or Cancel Your Previous Plan
139139

docs/ecommerce-applications/akeneo/how-to-install-akeneo-3-on-hypernode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ redirect_from:
1212

1313
# How to Install Akeneo 3 on Hypernode
1414

15-
Akeneo 3 preferably requires a Hypernode Pelican L, Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 5.7, PHP 7.2 and Elasticsearch 6.x**, so it won’t affect your shop negatively. Installing Akeneo version 3.x may take up to 15 minutes.
15+
Akeneo 3 preferably requires a Hypernode Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 5.7, PHP 7.2 and Elasticsearch 6.x**, so it won’t affect your shop negatively. Installing Akeneo version 3.x may take up to 15 minutes.
1616

1717
## Managed Vhosts
1818

docs/ecommerce-applications/akeneo/how-to-install-akeneo-4-on-hypernode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ redirect_from:
1313

1414
# How to Install Akeneo 4 on Hypernode
1515

16-
Akeneo 4 preferably requires a Hypernode Pelican L, Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 8.0, PHP 7.3 and Elasticsearch 7.x**, so it won’t affect your shop negatively. Installing Akeneo version 4.x may take up to 15 minutes.
16+
Akeneo 4 preferably requires a Hypernode Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 8.0, PHP 7.3 and Elasticsearch 7.x**, so it won’t affect your shop negatively. Installing Akeneo version 4.x may take up to 15 minutes.
1717

1818
## Managed Vhosts
1919

docs/ecommerce-applications/akeneo/how-to-install-akeneo-5-on-hypernode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ redirect_from:
1212

1313
# How to install Akeneo 5 on Hypernode
1414

15-
Akeneo 5 preferably requires a Hypernode Pelican L, Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 8.0, PHP 7.4 and Elasticsearch 7.x**, so it won’t affect your shop negatively. Installing Akeneo version 5.x may take up to 15 minutes.
15+
Akeneo 5 preferably requires a Hypernode Falcon M, Eagle M hosting plan or larger. You can either choose to install it on a seperate Hypernode instance or on the same Hypernode as your Magento or Shopware installation. If you choose the latter you have to make sure that you have enough resources (disk space, memory and CPU) left. Furthermore you need to make sure that you are already using **MySQL 8.0, PHP 7.4 and Elasticsearch 7.x**, so it won’t affect your shop negatively. Installing Akeneo version 5.x may take up to 15 minutes.
1616

1717
## Managed Vhosts
1818

0 commit comments

Comments
 (0)