Cockpit preview

cockpit
v7
server-manager

(Giacomo Sanchietti) #1

We are really happy to announce a developer preview of the new NethServer management interface based on Cockpit (http://cockpit-project.org/).
Some of you already heard about it during our first NethServer Community Conference, but time has come to better share the work with everyone.

The aim of this preview is to gather tons of feedback: we need to know if we’re moving in the right direction.

The goals of nethserver-cockpit:

  • having a modern look and feel with major improvements on user interactions
  • easing access to common actions
  • using a set of well-known web technologies to involve more developers and speed up the development process
  • standing on the shoulders of giants by using and contributing to upstream Open Source projects
  • involving more developers! (Did I mention it before? :smiley: )

UI design principles:

  • keep left menu short
  • always expose current system status and link to common actions
  • every application should behave like a self-contained module:
    • install it from a Software Center
    • the new application pops-up inside the “Applications” page
    • the applications has its own metadata (icon, description) and configuration pages

Some basics module are already working:

  • System services
  • Disk usage
  • Certificate management
  • DNS configuration
  • Hostname settings
  • Time settings
  • Organization contacts
  • Users and groups along with all local and remote account providers (with an amazing wizard!)
  • Applications: list all installed applications

So what big things are really missing?

  • Network configuration: Cockpit already comes with Network Manager support but we are still using old and stable network-scripts
  • Firewall (with all related modules like web proxy, IPS, etc)
  • Software center (Application store): we are thinking to create something like Gnome Software Center, adding a layer of abstraction in front of yum to allow developer to directly publish their own modules
  • Backup

Cockpit is a robust and fast-moving project which brings some modules already requested by NethServer users:

  • Terminal
  • Live graphs
  • Raid and LVM management
  • New log viewer

How to contribute

As a user, play with the new interface, find common usage scenarios, ask for new features, share your thoughts!
To install:

yum --enablerepo=nethserver-testing install nethserver-cockpit nethserver-cockpit-dummy

Access the web interface: https://<your_server>:9090

As a developer, read the brand new developer guide for the web interface: https://nethserver.github.io/nethserver-cockpit
You need to know only some HTML, CSS and Javascript basics!

Get your hands dirty:

  • try to improve an existing page
  • create a new page (@edoardo_spadoni a wonderful tool to scaffold a whole new module)
  • port an old module to the new interface

Roadmap

We must decide it together! Of course, the current excellent NethGUI will continue to exists for the whole NethServer 7.x life cycle, but we need to understand if new major UI changes should be done on NethGUI or it’s better to focus on NethServer Cockpit.

You can find a dirty short-living todo list here: https://github.com/NethServer/nethserver-cockpit/projects/1

@davidep and @edoardo_spadoni are preparing a talk to be submitted on next FOSDEM!

We’re looking for feedback and we’d like to involve the whole community in the process, please add your comment below.


Nethserver-discourse module?
Samba Shared Folder Locations
NethServer Hotsync [Needs Testing]
Log file dealing
File server and add and manage disks
(Giacomo Sanchietti) #2

(Davide Principi) #3

It would be great to reach feature parity at UI level early during ns7 lifecycle. Then substitute (with backward compatibility) the esmith event/template system with Ansible on ns8 :trophy:


#4

Hi,

It’s real pleasure to see a preview…

I’ve got lot of ideas about the left menu bar…
I will try to organize theses ideas and reopen the thread about.


(Alessio Fattorini) #5

That’s a huge improvement of whole NethServer project. I’m really interested in involving new contributors and developers through that new technology, trying to lower barriers to entry. I’d like to validate our hypothesis tough


(Rob Bosch) #6

I think it is a great, clean and smooth new interface. I already installed it on my NethServer instances and looking forward to added functionality in this new interface.


(Евгений Копьев) #7

Great interface, waiting for full transition to it.


(Stéphane de Labrusse) #8

404 on https://nethserver.github.io/nethserver-cockpit/guidelines and https://nethserver.github.io/ui_guidelines that you can find at https://nethserver.github.io/nethserver-cockpit/


(Stéphane de Labrusse) #9

a lot of new stuffs to learn, i will be also curious to see if a new technology can attract new developers


(Stéphane de Labrusse) #10

do you have some github repo where I can see some code examples ?


(Davide Principi) #11

Only the NethServer-cockpit itself by now. It’s a good idea to create one though!

Feel free to ask specific questions too!


(Stéphane de Labrusse) #12

I will do, but before I need

  • more free time, I’m short :frowning:
  • some official modules to read and understand how it works
  • be sure that an audience exists

(Alessio Fattorini) #13

It will exist, trust me :slight_smile:


(Stefano Zamboni) #14

I did a VERY fast view to https://github.com/NethServer/nethserver-cockpit/tree/master/api/applications file (applications.js)

don’t use .spawn method, always use .http one…

generally speaking, since .spawn is the way to execute a command, and the logged user might have high privileges (root) and the application might be WAN exposed, giving a web app the possibility to execute any command is to avoid.

my 2c
(apart the api layer, you’re doing exaclty what I did 2 years ago :wink: )


(Alessio Fattorini) #15

Great! Given your expertize you’re the right person to help us. We need you (and all people interested in) to improve this new toy. I argue that most of our future will be based on that project :slight_smile:


(Stefano Zamboni) #16

sorry, not interested


(Alessio Fattorini) #17

:frowning: You’re hurting my feelings! :broken_heart:
I’m sure we will find new contributors anyway
We’d like to create some “connection” with the cockpit team too :slight_smile:


(Giacomo Sanchietti) #18

As Davide said, all code is in nethserver-cockpit.
But @edoardo_spadoni prepared a stub using yeoman, you can check the yeoman templates:

Fixed! Thank you for pointing it out :wink:

Excellent!


(Stéphane de Labrusse) #19

I’m sure that this project will come but at the end I’m not so enthusiastic for several reasons

The language of nethgui is php, it is a common language for coding that a lot of people can use, either professional or amatory like me…if nethgui has not been adopted, if you don’t have a lot of people for coding modules, it is not a problem of language, it is a problem of documentation, because actually it is near zero…also of motivation, but it is another problem.

Nethgui from my point of view is easy to take in hand (thank to @davidep ) but the lack of documentation is crippling and If you reproduce the same error, you will have the same results

Moreover, you want to go to a full web application which is probably a good thing if I refer to my friend alexis (you saw it at the last fosdem). But he is a professional, these languages (I spoke about html, css, javascript) are used by professionals, and after a day work, they don’t want to code…they want to see the TV, and play with their family.

I’m kidding but I don’t think i’m so far of the truth.

So the game is not done and surely not won.

For the community, I’m not sure if it is a good thing, because due to the development of a new server-manager, new features won’t be coded in nethgui, the resources will be attributed to cockpit…so be pleased but wait a bit :smiley:


(Alessio Fattorini) #20

Maybe but it’s worth it if the new features on cockpit will be developed twice as fast and it enables us to build a powerful webinterface. Don’t you think?