Skip to content

hanawa-suzuki/0-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status codecov

0-core

The core of Zero-OS is 0-core, which is the Zero-OS replacement for systemd.

Branches

Releases

See the release schedule in the Zero-OS home repository.

Development setup

To run Zero-OS in a Docker container, just run the following command, which will pull the needed image as well:

docker run --privileged -d --name core -p 6379:6379 g8os/g8os-dev:1.0

To follow the container logs do:

docker logs -f core

Creating a JWT token from itsyou.online.

Login to your profile at https://itsyou.online and from the settings ( gear icon ) create an API key and copy the values.

  • Make sure you are granted acccess to greenitglobe.development.orchestrators organization at IYO.

From command line

export CLIENT_ID='<your client id>'
export CLIENT_SECRET='<your secret>'
export ORG=greenitglobe.development.orchestrators
export VALIDITY_IN_SECONDS=3600
export JWT=`curl -s -X POST "https://itsyou.online/v1/oauth/access_token?grant_type=client_credentials&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&response_type=id_token&scope=user:memberof:${ORG}&validity=${VALIDITY_IN_SECONDS}"`
echo $JWT

Simply replace the CLIENT_ID and CLIENT_SECRET values with your own.

Using the Python client

Before using the client make sure the ./client/py-client is in your PYTHONPATH.

from client import Client

cl = Client(host='<IP address of Docker container running Zero-OS>', password='<JWT>')

#validate that core0 is reachable
print(cl.ping())

#then u can do stuff like
print(
    cl.system('ps -eF').get()
)

print(
    cl.system('ip a').get()
)

#client exposes more tools for disk, bridges, and container mgmt
print(
    cl.disk.list()
)

Features

v0.9

  • Boot the 0-core as init process
  • Manage disks
  • Create containers
    • Full Namespace isolation
    • Host the root filesystem of the containers via ipfs
    • Network stack dedicated
    • ZeroTier Network integration
    • Use flist file format as root metadata
  • Remotly administrate the process
    • via Python client
    • via redis

v0.10

  • change datastore for fuse filesystem from ipfs to Zero-OS Store.

v0.11

  • include of the monitoring of all processes running on the Zero-OS. It produces aggregated statistics on the processes that can be dump into a time series database and displayed used something like Grafana.

v1.0.0

  • New Flist format, the flist used in the 0-fs is now a distributed as a RocksDB database.
  • Creation of the 0-Hub, see https://github.com/zero-os/0-hub
  • Improvement of the builtin commands of 0-core and coreX

v1.1.0-alpha2

  • Lots and lots of bug fixes
  • Containers plugins
  • Unprivileged containers (still in beta)
  • Libvirt bindings
  • Processes API
  • Support multiple ZeroTier in container networking
  • Support Open vSwitch networking for both containers and KVM domains
  • corectl command line tool to manage Zero-OS from within the node

Next

See the milestones in the Zero-OS home repository: Zero-OS Milestones

Schema

Schema Plan

Documentation

All documentation is in the /docs directory, including a table of contents.

In Getting Started with Core0 you find the recommended path to quickly get up and running.

About

Multi Node OS which requires no install.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 64.8%
  • Python 34.8%
  • Other 0.4%