sibprogrammer / owp Goto Github PK
View Code? Open in Web Editor NEWOpenVZ Web Panel
Home Page: http://owp.softunity.com.ru/
License: Other
OpenVZ Web Panel
Home Page: http://owp.softunity.com.ru/
License: Other
The statistics of all my virtual machines are empty (the graphs and table).
Watchdaemon is running and the log file shows no errors.
I reinstalled it several times (also the developer version), but nothing changed.
Version: 2.3
OS: Debian 6
➜ ~ cat /proc/vz/vswap
Version: 1.0
yet owp shows vswap field disabled.
Blesta is an alternative to WHMCS, which does not have any support for OWP at this time.
OWP supports WHMCS, however, they have had some crazy price increases in the past years. Supporting another project such as blesta, which is open source except for licensing files, would be a huge addition.
Hope you consider.
Great application! Unfortunately, the use of absolute URLs (e.g. /ext/resources/css...) does not make this an easy webapp to put behind a reverse proxy. Certainly there are workarounds such as mode_proxy_html, though sad to have to use it on a modern day application.
No promises, but I will try to tweak it myself once I have more time to reconsider this webapp.
Hello,
Is there any way to add these options to whmcs client module?
I read in the Changelog of 2.2 that now the vSwap Function is supported. But still I'm not able to find, how to set the vSwap for each container :)
Hey,
Will be great if we can see those methods into the API (in order of importance):
-Manage backups
-Get live utilisation of resources
-Reinstall
Thanks
Is it possible that one day OWP will support LXC containers? I guess that it might be well out of scope of OWP, but OWP is much better than anything available for LXC so it would make sense to have it for LXC.
I know there is Proxmox VE that can be used with LXC, but it's unnecesarilly complex for some scenarios. And does not always make sense to use it in small business or home operation. Where OWP fits this case much better.
hello, any chance to have a update of this panel?
thx
Hi there,
Enabling SSL will enable also SSL v3 that is very vulnerable. Is there a way I can enable only TLS with OWP?
Thank you
Support for vzfirewall would be a very nice feature.
It seems that my installation of owp is pointing to the wrong Ruby installation. How can I specify the ruby executable? It's using /usr/bin/ruby
and I'd like to use /usr/local/bin/ruby
.
Once ploop filesystem support is added (#33), please add support for backup via ploop filesystem snapshots.
RubyGems 1.3.5 installed
ERROR: While executing gem ... (JSON::GeneratorError)
source sequence is illegal/malformed utf-8
true
true
Checking presence of the command: ruby
Ruby version: 1.8.7
Checking presence of the command: gem
Fatal error: RubyGems is not installed. Please install it first.
But gem is installed on my centos 6
[root@ip- cache]# which gem
/usr/local/rvm/rubies/ruby-1.8.7-p374/bin/gem
how do I fix?
Hello.
owp was working fine until I tried to connect to it. I wanted to restart it, here is the output of /etc/init.d/owp restart:
root[/home/alex]# /etc/init.d/owp restart
Stopping OpenVZ Web Panel server...
Stopping hardware node daemon...
[FAIL] Unable to stop hardware node daemon.
Stopping watchdog daemon...
[FAIL] Unable to stop watchdog daemon.
Starting OpenVZ Web Panel...
Starting watchdog daemon...
[FAIL] Unable to start watchdog daemon.
Starting web server webrick on 0.0.0.0:3000...
[FAIL] Unable to start web server.
Starting hardware node daemon...
[FAIL] Unable to start hardware node daemon.
Syncing hardware nodes states...
[FAIL] Unable to sync information about hardware nodes.
Any clue what to try / where to look ?
I don't know since when it's been occurring, but my openvz web panel stopped working recently. Now, when I enter the address in the browser (Chrome) to access the web panel, I just get an error message: ERR_EMPTY_RESPONSE.
I also tried Firefox, and I get a message saying the connection was restarted.
I even reinstalled owp from scratch, without any errors, but the problem persists. Restarting the service does not seem to solve the issue:
`root@Box:/opt/ovz-web-panel# service owp start
Starting OpenVZ Web Panel...
Starting watchdog daemon...
[OK] Watchdog daemon was started.
Starting web server webrick on 0.0.0.0:3000...
[OK] Web server was started.
Starting hardware node daemon...
[OK] Hardware node daemon was started.
Syncing hardware nodes states...
[OK] Hardware nodes information was synced.
root@Box:/opt/ovz-web-panel#
`
Any ideas?
Hello,
would be great top add information in wiki about owp backup feature: what it does, where it puts, how to save it, and how to restore it.
Please add support to OWP to run the panel as a non-root user. It appears to be just a ruby app listening on a port >1024, there's nothing that actually requires elevated privileges, is there?
hi.
the automated daily backup process keeps only a single backup of CT. it would by great if it would be posibile to define how many daily backups i want keep (maybe per CT).
Hi!
I am working on Rails 3 port. Work in progress: https://github.com/biow0lf/owp/tree/rails3
I will attach code here later, when it will be ready.
Hi,
The Remote API documentation is no more up to date, and is not even on Github. Google code being shut down soon, it might be a good idea to consider moving it to Github, and updating it (for example, ip-pools is missing)
Thanks!
Is this project dead? When it is planned the next version? With the latest openvz version is impossible to use. Also does not support ploop devices.
Hello,
Is it possible to make OWP multi thread? Currently it is impossible to process more than one task at the same time. Eg. if you create VPS, OWP becomes unavailable.
This is a feature request for allowing users to download zipped versions of the backups they have created.
Hi,
I'd like to know if it was possible (and a good idea) to set a default hardware server for newly created virtual servers. The choice could be random, or based on available ips ... but would require a small work (instead of a bunch of queries using the API)
It would also make the creation easier, as IP selection is already in "auto mode", but depending on the hardware server / ip linked to it.
Thanks, @sibprogrammer
sometimes after changing any value in OWP I see error about unable to set value and then its impossible to start vps.
When I try to start vps through vzctl
I see
Starting container...
Error: required UB parameter kmemsize not set
Error: required UB parameter lockedpages not set
Error: required UB parameter shmpages not set
Error: required UB parameter numproc not set
Error: required UB parameter vmguarpages not set
Error: required UB parameter oomguarpages not set
Error: required UB parameter numtcpsock not set
Error: required UB parameter numflock not set
Error: required UB parameter numpty not set
Error: required UB parameter numsiginfo not set
Error: required UB parameter tcpsndbuf not set
Error: required UB parameter tcprcvbuf not set
Error: required UB parameter othersockbuf not set
Error: required UB parameter dgramrcvbuf not set
Error: required UB parameter numothersock not set
Error: required UB parameter numfile not set
Error: required UB parameter dcachesize not set
Error: required UB parameter numiptent not set
After some search in google I've found some magic method like change template type to any other, save, and then change template back. Once it helped but now I'm getting this error again.
If I set all this values manually in config it works.
is it error in my templates or what?
There is no ploop support. Setting VE_LAYOUT=ploop gives error "--diskspace must be defined". Creating no-ploop ve and converting later to ploop works.
centos - 6.5
owp - 2.4
ruby - 1.8.7
production.log:
NoMethodError (undefined method get_advanced_limits' for nil:NilClass): /app/controllers/admin/server_templates_controller.rb:11:in
list'
/vendor/rails/actionpack/lib/action_controller/base.rb:1253:in send' /vendor/rails/actionpack/lib/action_controller/base.rb:1253:in
perform_action_without_filters'
/vendor/rails/actionpack/lib/action_controller/filters.rb:617:in call_filters' /vendor/rails/actionpack/lib/action_controller/filters.rb:610:in
perform_action_without_benchmark'
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in perform_action_without_rescue' /usr/lib/ruby/1.8/benchmark.rb:293:in
measure'
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in perform_action_without_rescue' /vendor/rails/actionpack/lib/action_controller/rescue.rb:136:in
perform_action_without_caching'
/vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in perform_action' /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
cache'
/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in cache' /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in
perform_action'
/vendor/rails/actionpack/lib/action_controller/base.rb:524:in send' /vendor/rails/actionpack/lib/action_controller/base.rb:524:in
process_without_filters'
/vendor/rails/actionpack/lib/action_controller/filters.rb:606:in process_without_session_management_support' /vendor/rails/actionpack/lib/action_controller/session_management.rb:134:in
process'
/vendor/rails/actionpack/lib/action_controller/base.rb:392:in process' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:183:in
handle_request'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:110:in dispatch_unlocked' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:123:in
dispatch'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in synchronize' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in
dispatch'
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:132:in dispatch_cgi' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:39:in
dispatch'
/vendor/rails/railties/lib/webrick_server.rb:103:in handle_dispatch' /vendor/rails/railties/lib/webrick_server.rb:74:in
service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in
run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in
start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in
start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in each' /usr/lib/ruby/1.8/webrick/server.rb:92:in
start'
/usr/lib/ruby/1.8/webrick/server.rb:37:in start' /usr/lib/ruby/1.8/webrick/server.rb:82:in
start'
/vendor/rails/railties/lib/webrick_server.rb:60:in dispatch' /vendor/rails/railties/lib/commands/servers/webrick.rb:66 /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require' /vendor/rails/activesupport/lib/active_support/dependencies.rb:153:in
require'
/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in new_constants_in' /vendor/rails/activesupport/lib/active_support/dependencies.rb:153:in
require'
/vendor/rails/railties/lib/commands/server.rb:49
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require'
//script/server:3
and also it don't see any of predownloaded templates.
Hello,
I am trying to integrate owp with whmcs using the document you provided here:
https://github.com/sibprogrammer/owp/wiki/WHMCS-Module
I am done with all the setps and when i proceed to whmcs product configuration I dont see the options mentioned in the image.(node, server template, os, user role)
https://www.diigo.com/item/image/530tf/wd42
What is the solution for this?
please to update installer so it installs ruby-1.8 instead of 1.9 in debian 7
Hello.
First thanks for your wonderfull GUI. But i have a question now. Are you planning to support ruby 2.0 or even higher in near future? Ruby 1.8 is EOL as far as i know. https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/
thanks and cheers
t.
any help
$ grep PHYSPAGES /etc/vz/conf/1007.conf
PHYSPAGES="0:256M"
$ grep PHYSPAGES /etc/vz/conf/1006.conf
PHYSPAGES="0:262144"
1006 - unlimited
1007 - 256
Thanks
Hi,
It seems that Ruby 1.8 is not available on Debian 8 😞. (Or I don't see how to install it, I can only install 2.1 version.)
It will be awesome to make the panel compatible with newer versions of ruby.
Thanks,
Halfman.
Hi, can you add new functionality to backup system. I think it will be wondering, if admin can set how much backup on day, or on week is needed. If backup script can work over LLVM, vm idle will be less and minor. What you think about this? It's real or you do not have a time, to do this? I'm use Python, and I can't contribute to this project. It's a very sad:(
p.s. - if it's possible, you can add settings to remote backups(via nfs, ftp or sftp). And max allowed size. When limit is reached, old backups will be removed.
When I install the OpenVZ-Web-Panel comes the error:
[FAIL] Unable to start web server.
Syncing hardware nodes states...
[FAIL] Unable to sync information about hardware nodes.
Place hardware daemon on machine with OpenVZ.
To start hardware daemon run:
sudo ruby /opt/ovz-web-panel//utils/hw-daemon/hw-daemon.rb start
Checking environment...
System info: Linux ovzdeb 3.16.0-10-amd64 #1 SMP Debian 3.16.81-1 (2020-01-17) x86_64 GNU/Linux
Detecting distrib ID...
Checking presence of the command: lsb_release
No LSB modules are available.
LSB info: Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: jessie
Detected distrib ID: Debian
Standalone environment detected.
Resolving dependencies...
Ign http://ftp2.de.debian.org jessie InRelease
OK http://security.debian.org jessie/updates InRelease
OK http://ftp2.de.debian.org jessie Release.gpg
OK http://ftp2.de.debian.org jessie Release
OK http://security.debian.org jessie/updates/main Sources
OK http://ftp2.de.debian.org jessie/main Sources
OK http://security.debian.org jessie/updates/main amd64 Packages
OK http://security.debian.org jessie/updates/main Translation-en
OK http://ftp2.de.debian.org jessie/main amd64 Packages
OK http://ftp2.de.debian.org jessie/main Translation-de_DE
Holen: 1 https://download.openvz.org jessie InRelease [313 B]
Ign https://download.openvz.org jessie InRelease
OK http://ftp2.de.debian.org jessie/main Translation-de
OK http://ftp2.de.debian.org jessie/main Translation-en
OK https://download.openvz.org jessie Release.gpg
OK https://download.openvz.org jessie Release
OK https://download.openvz.org jessie/main amd64 Packages
Holen: 2 https://download.openvz.org jessie/main Translation-de_DE [335 B]
Holen: 3 https://download.openvz.org jessie/main Translation-de [332 B]
Holen: 4 https://download.openvz.org jessie/main Translation-en [332 B]
Holen: 5 https://download.openvz.org jessie/main Translation-de_DE [335 B]
Holen: 6 https://download.openvz.org jessie/main Translation-de [332 B]
Holen: 7 https://download.openvz.org jessie/main Translation-en [332 B]
Holen: 8 https://download.openvz.org jessie/main Translation-de_DE [335 B]
Holen: 9 https://download.openvz.org jessie/main Translation-de [332 B]
Holen: 10 https://download.openvz.org jessie/main Translation-en [332 B]
Holen: 11 https://download.openvz.org jessie/main Translation-de_DE [335 B]
Holen: 12 https://download.openvz.org jessie/main Translation-de [332 B]
Holen: 13 https://download.openvz.org jessie/main Translation-en [332 B]
Holen: 14 https://download.openvz.org jessie/main Translation-de_DE [335 B]
Ign https://download.openvz.org jessie/main Translation-de_DE
Holen: 15 https://download.openvz.org jessie/main Translation-de [332 B]
Ign https://download.openvz.org jessie/main Translation-de
Holen: 16 https://download.openvz.org jessie/main Translation-en [332 B]
Ign https://download.openvz.org jessie/main Translation-en
Paketlisten werden gelesen... Fertig
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Note, selecting 'ruby' instead of 'rubygems'
Package ruby1.8 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'ruby1.8' has no installation candidate
E: Paket libsqlite3-ruby kann nicht gefunden werden.
E: Paket libruby1.8 kann nicht gefunden werden.
E: Mittels regulärem Ausdruck »libruby1.8« konnte kein Paket gefunden werden.
Checking presence of the command: ruby
Ruby version: 1.8.7
Checking presence of the command: gem
RubyGems version: 2.0.17
Checking Ruby SQLite3 support: ruby -e "require 'rubygems'" -e "require 'sqlite3'"
Installation...
Downloading: wget -nc -P /opt/ovz-web-panel/ http://owp.softunity.com.ru/download/ovz-web-panel-2.4.tgz
--2020-04-18 14:15:31-- http://owp.softunity.com.ru/download/ovz-web-panel-2.4.tgz
Auflösen des Hostnamen »owp.softunity.com.ru (owp.softunity.com.ru)«... 46.101.128.171
Verbindungsaufbau zu owp.softunity.com.ru (owp.softunity.com.ru)|46.101.128.171|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 3078181 (2,9M) [application/octet-stream]
In »»/opt/ovz-web-panel/ovz-web-panel-2.4.tgz«« speichern.
/opt/ovz-web-panel/ovz-web-panel-2.4.tgz 100%[==========================================================================================================================================>] 2,94M 1,65MB/s in 1,8s
2020-04-18 14:15:32 (1,65 MB/s) - »»/opt/ovz-web-panel/ovz-web-panel-2.4.tgz«« gespeichert [3078181/3078181]
Unpacking: tar --strip 2 -C /opt/ovz-web-panel/ -xzf /opt/ovz-web-panel//ovz-web-panel-2.4.tgz
Removing downloaded archive: rm -f /opt/ovz-web-panel//ovz-web-panel-2.4.tgz
Installation finished.
Product was installed into: /opt/ovz-web-panel/
Starting services...
Starting OpenVZ Web Panel...
Starting watchdog daemon...
[OK] Watchdog daemon was started.
Starting web server webrick on 0.0.0.0:3000...
[FAIL] Unable to start web server.
Syncing hardware nodes states...
[FAIL] Unable to sync information about hardware nodes.
Place hardware daemon on machine with OpenVZ.
To start hardware daemon run:
sudo ruby /opt/ovz-web-panel//utils/hw-daemon/hw-daemon.rb start
Panel should be available at:
http://ovzdeb.localdomain:3000
Default credentials: admin/admin
to debug I have added following code
if ($result === FALSE) {
printf("cUrl error (#%d): %s
\n", curl_errno($ch),
htmlspecialchars(curl_error($ch)));
}
Just before line - curl_close($ch);
It give me following error
cUrl error (#7): couldn't connect to host
When I manually try to connect at $host/api/hardware_servers/list it ask me password and username via a popup window. I provide the credentials and got the detail as -
<hardware_servers type="array">
<hardware_server>
<daemon_port type="integer">7767</daemon_port>
<default_os_template>centos-5</default_os_template>
<default_server_template>vswap-256m</default_server_template>
localhost
1
<use_ssl type="boolean">false</use_ssl>
true
</hardware_server>
</hardware_servers>
please help me ???
After I clicked "Add" the webinterface was loading and loading and didn't loaded any site anymore. Then I restarted the webinterface and it worked - but not fully. I was not able to get access to the IP list and edit any vServer.
The solution was to download the db/production.sqlite3 and manually remove the IPv6 IP out of the ip_pool table. I reuploaded the database and now it's working fine again.
Hi
I started see following error. Any idea why I'm getting this?
OS: CentOS 6
Kernel: 2.6.32-042stab123.3
Error message:
/etc/cron.daily/owp.cron:
/usr/lib64/ruby/gems/1.8/gems/rake-10.4.2/lib/rake/rdoctask.rb:4: ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead. (RuntimeError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require'
from /opt/ovz-web-panel//script/cron_runner:11
Install via wget -O - https://raw.githubusercontent.com/sibprogrammer/owp/master/installer/ai.sh | sh
fails
Gem files will remain installed in /usr/local/share/gems/gems/sqlite3-1.3.13 for inspection. Results logged to /usr/local/share/gems/gems/sqlite3-1.3.13/ext/sqlite3/gem_make.out Checking presence of the command: ruby Fatal error: Panel requires Ruby 1.8 (Ruby 1.9 is not supported).
I'm stuck at configuring the hw-daemon, I use the openvz kernel and the owp at the same server, so according to INSTALL file (that really-really not giving me guidance) where I should put the /utils/hw-daemon at this server? (cause it's mentioned that "Next step is to generate unique key, which will be used for authorization between panel and daemon.") And do I need to make two of that in different directory and port and then run two of them? Or just one at this server?
Upgrading to latest version 2.2 causes several errors. In general, HW syncing no longer works and editing a HW node gives following error:
Internal error: undefined method `vswap=' for #
in logfile:
Internal error: undefined method `vswap=' for #<HardwareServer:0x7f051f0a76e0>
I guess it's because of failed "upgrade". Manually running the DB migration commands errors:
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/opt/ovz-web-panel/Rakefile:8
(See full trace by running task with --trace)
CentOS 6.4, Ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
Solved:
gem install rake --version 0.8.7
gem uninstall rake --version 10.0.3
OS:
Debian Linux 2.6.32-5-openvz-amd64 x86_64 GNU/Linux
OWP: 2.1
Installed via the installer script.
I installed owp into an openvz container. I noticed that on reboot of the container, owp was not starting. Starting it via service owp start
worked without any problems. So I ran update-rc.d owp defaults
and found the issue to be a startup requirement on vz. Seeing as vz is not running in a container, I removed that requirement from /etc/init.d/owp and then update-rc.d worked without fail. Maybe there could be some sort of detection if owp is being installed in a container/system without vz and only place that requirement if vz is installed.
A WiKi page should be createad informing users how to remove ( uninstall ) OpenVZ Web Panel
Please add support for 'inherit' DNS server setting.
The url for autoinstaller http://owp.softunity.com.ru/download/ovz-web-panel-latest.tgz is not available
thanks!
Hi,
i just installed openvz & owp on my debian 7 wheezy machine.
openvz works fine, i can create and enter vm's etc via putty, but the webpanel ist not showing up my physical and virtual machines.
when i start owp
service owp start
Starting OpenVZ Web Panel...
Starting watchdog daemon...
[OK] Watchdog daemon was started.
Starting web server webrick on 0.0.0.0:3000...
[OK] Web server was started.
Starting hardware node daemon...
[FAIL] Unable to start hardware node daemon.
Syncing hardware nodes states...
[OK] Hardware nodes information was synced.
my kernel: 2.6.32-openvz-042stab120.18-amd64
When I want to install this panel I get the following error:
Fatal error: Panel requires Ruby 1.8 (Ruby 1.9 is not supported).
When I check the current ruby version:
root@vm:/opt# ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
But ruby 1.8 is installed too:
root@vm:/opt# dpkg -l | grep "ruby1.8" ii libruby1.8 1.8.7.358-7 amd64 Libraries necessary to run Ruby 1.8 ii ruby1.8 1.8.7.358-7 amd64 Interpreter of object-oriented scripting language Ruby 1.8 ii ruby1.8-dev 1.8.7.358-7 amd64 Header files for compiling extension modules for the Ruby 1.8
Is there a way to still get it working?
Hello,
It looks like OWP always crashes if one of the nodes becomes offline for some reason.
Anyone has the same issue?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.