Installations instructions
To install Apiro locally, you can make use of Docker Desktop and Docker Compose to install on your local machine. If and when you decide to install a permanent production instance of Apiro Community, you may make use of Apiro's official public compute images on popular cloud vendors such as AWS and Azure. Alternatively. for those with the technical capability and specific requirements, the Apiro Community Docker images are available publicly on DockerHub and may be installed using whatever custom deployment scenario you care to maintain (such as Kubernetes configurations) Commercial versions of Apiro are strictly to be installed into a Kubernetes cluster and may be lifecycle managed via an Apiro supplied Helm chart.
Minimum requirements
-
Windows
- Windows 11
- RAM 16GBs
- Docker Desktop version 4.29
-
MacOs
- MacOS Soroma 14.4.1
- RAM 16GBs
- Docker Desktop version 4.29
Installation Instructions
- Install and start Docker Desktop
- Pull the community version of Pull the community version of Apiro Community Compose Public from Git. Note: The community scripts may be updated regularly. It is strongly encouraged to pull from the origin regularly.
- Start Docker Desktop. The minimum required version for both Windows and MacOS is 4.29.
- Open your command line go to `/apiro-community-compose-public/'
- For MacOS run
and for Windows run
1
./runapiro.sh v1 apiroexamples-pub clean
1
./runapiro.bat v1 apiroexamples-pub clean`
-
Notes for Windows
Note1: If you are getting MongoDB connection issues it means that the server is trying to connect to MongoDB before starting properly. This is common with slower machines. In order to fix this please uncomment this property and increase the value to 20#APIRO_PREPAUSE=5
Note2: The script will attempt to bind to ports 8080, 8081 and 8082. If these ports are not available the script will fail to run. You must either make those ports available or specify other ports as described below. The Windows script was tested on Windows 11, Docker Desktop 4.29.0 utilising the WSL2 based engine (not the old Hyper-V based backend) -
Wait until you see the following
APIRO COMPLETED AUTOINIT
message in the command line you.Note When you see the
AUTONIT COMPLETED SUCCCESSFULLY
message it means, the server is running correctly even if the command line continues to print out messages. -
Go to http://127.0.0.1:8080/ and login using (username: admin, password: qwerty55!)
-
You should be able to now navigate the examples described in the use guide.
- The instance is pre configured to boostrap using existing examples in apiro_examples git repository
- Please note that the instance is already setup with an existing git user
apiropublic
. - However, you will not be able to write (create or edit schemas, feeds, dataSources or other entities) to this public repository or follow the Getting started guide.
- To terminate the server you need to type
ctrl-c
- In order to to be able to complete the "Getting Started Guide" you need to create your own repository and follow the instructions below.
- Apiro allows you to bootstrap with 9 repos. Adding them as xml allows unlimited
config source
repos. An example will be provided soon in the Getting started guide.
Customize your instance to run against your own repository
- You will notice the file
apiro-community-compose-public/apiro-apiroexamples-pub-properties.env
- Duplicate the file and name it
apiro-community-compose-public/apiro-apiroexamples-copy-pub-properties.env
- replace the value of
APIRO_ADMINEMAIL
with a valid email you have access to. - replace the value of
APIRO_ADMINPW
with your own non encoded password you want to use to login to Apiro after visiting http://127.0.0.1:8080/> - replace the value of
GIT1_NAME
with the name of your repository. You can choose any name you want as this will be shown in the Apiro UI after it loads. - set the value of
GIT1_READONLY
withfalse
- replace the value of
GIT1_URL
with the URL of your ownprivate
repository you have write access to. - replace the value of
GIT1_USER
with your own git username that has access toGIT1_URL
. - replace the value of
GIT1_PASS
with the token you created for your own GIT user to access your own repository. - replace the value of
GIT1_BRANCH
with the branch to intend to use to store the Apiro configuration files. It is acceptable to just usemain
. - replace the value of
GIT1_PREFIX
with the path to the directory you want your configuration files to reside. It is acceptable to just use rootGIT1_PREFIX=/
. -
if any of the ports
8080
,8081
,8082
,27018
are not available you can replace the values of these properties accordingly -APIRO_WEB_PORT
, -APIRO_REST_PORT
, -APIRO_WS_PORT
, -APIRO_MONGO_PORT
.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
# admin account details APIRO_ADMINPW=qwerty55! # REPLACE aaa@bbb.com WITH YOUR OWN VALID EMAIL APIRO_ADMINEMAIL=aaa@bbb.com #change the values below to reassign binding ports #APIRO_WEB_PORT=8080 #APIRO_REST_PORT=8081 #APIRO_WS_PORT=8082 #APIRO_MONGO_PORT=27018 # GIT system properties repository GIT1_NAME=APIRO_EXAMPLES GIT1_READONLY=true GIT1_URL=https://github.com/redapiro/apiro_examples.git GIT1_USER=apiropublic GIT1_PASS=[PREDEFINED_ENCODED_TOKEN_FOR_APIROPUBLIC] GIT1_BRANCH=version1 GIT1_PREFIX=/config/ # jvm opts JVM_OPTS="-Xmx4G -XX:+UseZGC -XX:+ZGenerational" RUNFEED_ON_START=ALL #enable quartz scheduler APIRO_QUARTZENABLED=true # mail server details - if you want to use email notifications APIRO_SMTP_ENABLED=false APIRO_SMTP_HOST=TODO APIRO_SMTP_HOST=TODO APIRO_SMTP_USER=TODO APIRO_SMTP_USER=TODO APIRO_SMTP_PASSWORD=TODO
-
After you make the above changes you need to restart and login to apiro using the the new modified properties file. Note that the name of the file is different that then one mentioned at the top of this page. For MacOS run
and for Windows run1
./runapiro.sh v1 apiroexamples-copy-pub clean
1
./runapiro.bat v1 apiroexamples-copy-pub clean
- Note about secrets:
Apiro should never encode secrets and privileged information, such as API tokens in its configuration repositories. It therefore provides encryption and hashing facilities for this end. In addition to being able to access secret management and encryption APIs provided by the dominant plublic cloud utilities such as AWS, GCP and Azure, it has an inbuilt secrets vault called SYS Vault Manager, which uses symmetric key AES encryption to encrypt secrets. The user interface provides the facility to encrypt secrets via SYS (though for security purposes it's a one way process - there is no way to decrypt them via the UI or API). The relevant documention provides information on how to make use of the SYS Vault manager for general configuration. However, with regard to bootstrapping Apiro via environment variable settings (which is the subject at hand here), it is suffice to say that Apiro allows the GIT keys and/or passwords for the Configuration Sources to be provided in clear text or encrypted via SYS Vault Manager. We strongly recommend you make use of SYS to encrypt any privileged config information. To encrypt any string data via SYS follow these procedures below:
- Note about secrets:
-
You need to navigate to the
Secret Management
page as shown by the screenshot below -
Copy the current value of
GIT1_PASS
and generate the associated secret. - Copy the secret and override the existing
GIT1_PASS
value. - You also need to to provide your own
GITHUB
user credentials by updating the propertiesAPIRO_GITHUB_USERNAME
andAPIRO_GITHUB_PW
inSYSPROPS_GITHUB.xml
file. - After you modify the property files you need to push the changes to GIT and restart the server once again.
-
This GIT user must have access to the repository you configured in the
apiro-community-compose-public/apiro-apiroexamples-pub-properties.env
file above. -
Finally, this is an optional step and if you want to use the
GPT
andDocAi
examples you need to updateGCP_SVC_ACCOUNT_BASE64
,GCP_SVC_ACCOUNT
andOPENAI_API_KEY
inSYSPROPS_AUTH.xml
file.
21 Restart Apiro. - Note: In accordance with common best practice SYS makes use of a random set of prelude characters, so the same string encrypted multiple times will never generate the same ciphertext - it will be different every time, including in total ciphertext length.
Go back to Getting started guide