# Create Projects
Ionoid.io is structured as organizations where each organization includes a set of projects. Registered devices at Ionoid.io always belong to only one project and are unique across the whole organization.
To get an overview of the Ionoid.io dashboard, please visit the Dashboard Structure page.
# Create a Project
- After signin in, click on Create new project
- Choose your target board by clicking on it (see Supported Boards and OS)
You can mix different boards and architectures, but you have to make sure to not break your fleet by deploying apps built for other architectures (see Deploying Apps). Otherwise you can lock your project to the selected architecture, devices registered into the project must have same architecture, otherwise they will be blocked and will not show up in the project, unless you unlock the project architecture.
- Finish the project creation with informations related to your project, then click on the Create button
Now that the project has been created, you can start adding devices to this project. Each device will have a configuration data consisting of:
- Name of the device (optional)
- Runing OS image
- DNS and NTP servers
- WiFi network(s) needed for connection (optional)
- Cellular network(s) needed for connection/communication (optional)
- Environment variables used by apps that will be deployed on this device (optional)
This configuration can be set directly into the project, so as not to repeat the process for each device that we add to the project. Check out the next section to learn how.
# Configure the Project
A project has a configuration that will be shared across all its devices. It consists of:
# Project General Informations
You can set the project name, its segment and the organization to which it belongs.
# Default Project Board
Here you can change the default board that you set the first time you created the project. You can also reorder the supported operating systems for the selected board, the first operating system will be the default one that will be installed on devices when adding them to the project.
# Monitoring and Notifications
# Project Parameters
Used only to display the project ID and the API key used for devices (not editable).
# General Settings
# Deployment Settings
Here you can enable/disable two very interesting features that concern deployment of applications:
- The dual A/B application deployment: if enabled, this will ensure that the application can recover even if the deployment is incomplete or corrupted
- The application delta update: if enabled, the deployment will only download the parts of code that changed in the application. Leading to a save of time and bandwidth which may be significant.
# Advanced Settings
# WiFi Configuration
You can add up to 5 WiFi networks by clicking on Add a WiFi network, for each network you can set:
- The network ID (SSID) (required)
- The network visibility (default to 'not hidden')
- The network security mode (default to 'No security')
- The network password (required unless the security mode is set to 'No security')
- The network priority: networks with higher priority will be preferred. Default is 0. The higher number means higher priority
You can also add a fallback WiFi network by clicking on Add a fallback WiFi NETWORK, this network will be used in case all other networks are unavailable.
For development purpose, it is strongly recommended that you set a second WiFi network as a fallback, in case there are some errors. Maybe use your phone wireless as a second WiFi.
# Cellular Configuration
You can add up to 2 cellular networks, for each network you have to specify in order:
- The country to which the cellular network belongs
- The network ID (generally the provider name)
- The APN used for this network ID
Once you choosed the APN, fields 'Plan' and 'Usage' will be filled with the corresponding data. Use this data to confirm that APN you choosed is really the one you are aiming to use.
Selecting an incorrect plan may result in billing issues for your account or prevent connectivity.
# Connectivity Check
If you have cellular connectivity problems or even WiFi related ones, the Connectivity Check feature will allow you to:
- Monitor connectivity,
- Try to recover,
- Or reconfigure the connectivity,
- And if all fails, reboot the device again.
However rebooting devices should be last resort operation, usually reconfiguring connectivity will solve the problem.
The Connectiviy Check feature supports 4 parameters:
- The interval between two successive connectivity checks
- The number of failed connectivity checks that will trigger a network reconfiguration
- The maximum number of failed network connectivity and reconfiguration that will trigger the Failure Action
- The Failure Action to perform on connectivity and reconfiguration limit
The network reconfiguration operation will:
- Reset all Network Manager connections
- Reset all GSM modems and Modem Manager connections
The Failure Action supports the following operations:
- No action (by default): do not take any action, device state may stay in failure until connectiviy is back
- Normal reboot: perform a normal reboot operation
- Force reboot: perform a forced reboot operation by terminating all processes, should cause no dirty file systems
- Immediate reboot: similar to a hardware reboot, which might result in data loss
- Normal poweroff: perform a normal poweroff operation
- Force poweroff: perform a forced poweroff operation by terminating all processes
- Immediate poweroff: similar to a hardware poweroff operation, which might result in data loss
To be supported soon:
- Exit: performs a
systemdservice manager exit call. Use this only with enabled hardware watchdog
- Force exit: porforms a forced exit by
systemdthe service manager. Use this only with enabled hardware watchdog
# Boot Configuration
Here you can specify the kernel boot options.
# Project Environment Variables
Environment variables are dynamic variables that can affect how applications will run on the devices. Each project can have its own specific envrionment variables that are eployed to all devices part of that project.
Deployed applications can access these environment variables, and update their behaviour accordingly. This is very useful when it comes to update applications whithout redeploying, take an example of an endpoint url used in 10 apps deployed across 200 devices. Using environment variables, it is as simple as editing a single variable on dashboard, saving it, then redeploy the project settings including envrionment variables to the concerned devices.
# Save Project settings
After finishing the project configuration, you have to save the settings so they are not lost.
Please note that after editing the project settings, only newly registered devices will inherite of these settings. To make the already registered devices (see how to register a device) also inherite of these settings, you have to redeploy the project settings by clicking on the Redeploy project settings on all devices button that is present on the project details page :
Anyway, a reminder will be displayed each time you save the project settings:
# Add a Device to the Project
See the next section.
# Consult the Actions History
You can check the last actions that have been performed on the project by clicking on the ACTIONS HISTORY tab:
# Redeploy Project Settings
It is possible to redeploy the project settings to devices anytime. To do so click on the Redeploy project settings button that is part of the actions in the project details page :
Please note this may overwrite the settings of already running devices.
This may overwrite your WiFi configuration if it was changed and make your device inaccessible in case of errors.
# Delete a Project
You can delete a project by opening the SETTINGS tab on the project details page , then by clicking on the Delete this project button, and confirming by typing the project name:
Please note thay by deleting a project, you understand that all devices belonging to this project, all apps deployed on these devices, as well as the project configuration will be permanently deleted from the Ionoid.io dashboard.