• Keios OctoberMarket preview!

    OctoberCMS Market is quite awesome, but at current stage it doesn't really allow to attach private plugins to OctoberCMS, which is crucial for any webdevelopment agency working with October.

    That's why we decided to develop and open our own Market, to which we would be able to connect our clients portals.

    Today we release a preview which includes the plugin and package browser of all october plugins that we have in our repositorisy and we are going back to work hard on user zone and connecting this portal to PaymentGateway.

    october market

    As this is meant to be a tech blog, let me briefly explain how our market works.

    We store our plugins on the bitbucket and keep so called "mother" OctoberCMS instances up. If you visit this link you will be connected with one of them.

    It keeps track of all plugins we store on bitbucket, pull their repos to local filesystem and creates a zip file on update hook. Zip files are stored in cloud and provided to customers' october instances after proper project authentication.

    october market project

    This "mother" instance of October also connects user accounts, plugins and projects with licenses. It can automatically block updates for unpaid "sass" plugins or close their droplets, send e-mail warnings and also offer recognize MIT licenses plugins to provide them for free.

    If you didn't click the link yet - you can do it now and see what we have in store!

  • Merry Christmas!

    Keios Solutions wishes you Merry Christmas and a Happy New Year!

    Wishing you peace, joy, and all the best this wonderful holiday has to offer.

    May this incredible time of giving and spending time with family bring you joy that lasts throughout the year.

  • Simple monitoring tool for October

    Another MIT plugin from Keios is here!

    This time we created a simple plugin for OctoberCMS that allows you to monitor ssh connections, websites processes statuses from within OctoberCMS backend.

    Although we are happy with Zabbix, some of our customers want to see current status of their websites themselves. This plugin, once installed and configured allows to easily add websites or hosts to monitor, provides e-mail alerts and run check commands in background per time configured in Settings.

    For security reasons we recommend to run it in closed environment (for example VPN IP).

    You can find more details in plugin's README.

    Click to go to BitBucket repository!

  • Updates at Keios

    A while ago, we moved out repositories from GitHub to BitBucket, because we find BitBucket awesome and GitHub not so much.

    Lately we also moved most of our OSS projects from our GitLab to BitBucket.

    You can check KeiosDevs profile here

    If you are our customer, you will find PaymentGateway payment providers plugins there, but we also shared some of our stand-along plugins for OctoberCMS. among which you will find:

    • Apparatus - our scenario-based business logic framework for OctoberCMS and Laravel
    • MailgunEndpoint - plugin which changes OctoberCMS backend to incoming mailgun e-mail webmail.
    • Support Plugin - simple support ticket processor for OctoberCMS

    You will also find there some of our non-october projects, like fork of FusionPBX and more!

    We are also proudly announcing that Mailgun Endpoint plugin has been accepted and is available on OctoberCMS Market

    And as a teaser of sorts... Our VoipPlatform webmodules for VoipSwitch ReleaseCandidate is going out this week!


  • Queue Jobs for long operations in OctoberCMS

    Last time I wrote about Agent Portal that we created for one of our customers.

    The next project from the series was a much harder task: create fully custom Reseller Portal with such features like tariff editing, customers management, CDR and online payments.

    As long as Agents are quite limited (they can create clients and recharge clients and their profits are percentage of their recharges), resellers, from the other hand, are quite powerful entities. They get a rates list from switch owner with base prices and create apropriately higher tariffs - their profit is the difference between these two and depends on how much clients call.

    Production tariff has about 30000 - 40000 rows. Reseller must be able to copy these rows easily, change their values by percentage, by fixed values and so on. These are operations that can take several minutes and cannot be done with a normal request.

    That's where we used Queue Jobs. Let me share two classes from the Reseller plugin here. Base logic is that we get information from the Frontend Component, send them to RatesOperationsService class, which in turn creates Job and uses JobManager to dispatch it. Our October instance uses Redis as a queue engine and queue listener is hhvm artisan queue:listen command dispatched using supervisor app, which allows us to easily manage the number of required queue listener processes.

    Example Job

    Open in new tab

    In the job above, we take a page of rates from the source tariff, go trough it, replace necessary data (right now only id_tariff, but we will add more stuff here in future) and insert it to the database.


    Open in new tab

    JobManager is responsible for dispatching the Job to Queue and for job information management. With it, we were able to create another component, showing these information to the frontend client.

    How it works? Take a look!