Scrayos UG (haftungsbeschränkt)
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use GitLab CI because of the great native integration as a part of the GitLab framework and the linting-capabilities it offers. The visualization of complex pipelines and the embedding within the project overview made Gitlab CI even more convenient. We use it for all projects, all deployments and as a part of GitLab Pages.

While we initially used the Shell-executor, we quickly switched to the Docker-executor and use it exclusively now.

We formerly used Jenkins but preferred to handle everything within GitLab . Aside from the unification of our infrastructure another motivation was the "configuration-in-file"-approach, that Gitlab CI offered, while Jenkins support of this concept was very limited and users had to resort to using the webinterface. Since the file is included within the repository, it is also version controlled, which was a huge plus for us.

READ MORE
10 upvotes·112.5K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use Checkstyle for all of our Java projects to perform the linting. The setup was very easy and there are amazing integrations into all IDEs. What also came in very handy was that we could start off with just a basic set of rules and tighten the linting-rules step-by-step, continously improving the readability and uniformity of our codebase.

READ MORE
10 upvotes·30.4K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We primarily use MariaDB but use PostgreSQL as a part of GitLab , Sentry and Nextcloud , which (initially) forced us to use it anyways. While this isn't much of a decision – because we didn't have one (ha ha) – we learned to love the perks and advantages of PostgreSQL anyways. PostgreSQL's extension system makes it even more flexible than a lot of the other SQL-based DBs (that only offer stored procedures) and the additional JOIN options, the enhanced role management and the different authentication options came in really handy, when doing manual maintenance on the databases.

READ MORE
7 upvotes·155.6K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use Vert.x for our internal and external OpenAPI v3 REST-API that handles our own queries for the App, Launcher and Website aswell as external queries, authenticated through OAuth2.

Vert.x has proven to be a valuable asset and framework during the development of our application and the numberless "addon"-packages (OAuth2, OpenAPI, Redis Cache, SQL, etc.) allow us to test out new stuff very fast.

READ MORE
7 upvotes·12.5K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

As the access to our global REST-API "Charon" is bound to OAuth2, we use Keycloak inside Quarkus to authenticate and authorize users of our API. It is not possible to perform any un-authenticated requests against this API, so we wanted to make really sure that the authentication/authorization component is absolutely reliable and tested. We found those attributes within Keycloak, so we used it.

READ MORE
5 upvotes·69.5K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use Sonatype Nexus to store our closed-source java libraries to simplify our deployment and dependency-management. While there are many alternatives, most of them are expensive ( GitLab Enterprise ), monilithic ( JFrog Artifactory ) or only offer SaaS-licences. We preferred the on-premise approach of Nexus and therefore decided to use it.

We exclusively use the Maven-capabilities and are glad that the modular design of Nexus allows us to run it very lightweight.

READ MORE
5 upvotes·69.1K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use Hetzner Online AG since the inception of our business, because of the great prices, marvelous support and great interface (especially the new cloud interface). Other options that we tested are DigitalOcean (was more expensive than the new hetzner cloud and didn't offer "huge" dedicated servers), @Vultr (about the same issue as with DigitalOcean , although the prices were better), OVH (Prices, old interface, no "tiny" packages and [at least back at the day] only monthly payment) and Living Bots (Only dedicated servers, too expensive for our needs).

Hetzner offered the best spectrum of servers and has great prices and REALLY great prices in the server auctions.

READ MORE
5 upvotes·58.7K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use Swagger Inspector in conjunction with our universal REST-API "Charon". Swagger Inspector makes testing edge-cases hassle-free and lets testing look easy. Swagger Inspector was also a great help to explore the Mojang-API, that we are dependent on, because it is the central repository for minecraft-account-data.

We previously used Postman but decided to switch over to Swagger Inspector because it also integrated seamlessly into Swagger UI, which we use for displaying our OpenAPI specification of said REST-API.

READ MORE
4 upvotes·25.6K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

OpenLDAP is pretty much unrivaled, when it comes to the LDAP-Protocol. Although it is not hard to spot, that the general structure looks a little bit anachronistic in a time of microservices, cloud-native applications and dockerization, it is very reliable, stable and still actively developed.

We use OpenLDAP within a docker-container und interact with it through another docker-container, housing phpLDAPadmin. LDAP is still the gold-standard regarding a centralized, digital directory of the company accounts, structures and permissions and that's why we use it.

It is necessary, however, to install extensions for some features like enhanced group queries, better password algorithms and a few other features, that I'd like to be shipped by default.

READ MORE
3 upvotes·4.4K views
Avatar of Scrayos
CEO at Scrayos UG (haftungsbeschränkt)·

We use JaCoCo because it enables us to statically find missing test opportunities and improve our Test-Coverage, alongside PITest. While PITest performs mutation testing to dynamically and heuristically find missing test cases, JaCoCo finds lines of code that are not covered by the tests until now.

Both coverage tests are equally important for us and so JaCoCo has become an essential part of our build pipeline.

READ MORE
3 upvotes·2.4K views