Giter VIP home page Giter VIP logo

espocrm-dockerized's Introduction

ESPOCRM in Docker

This is an unofficial dockerized version of EspoCRM.

It doesn't have custom settings, just attach a mysql container and launch it. If you want, you can use docker-compose with this command:

docker-compose -f docker-compose.yml up

and go to http://localhost:8888/install for the initial wizard.

This image uses Ubuntu 18.04, PHP 7.2 and EspoCRM version 6.0.9.

If you need another version, just change ESPO_VERSION env and build a new image.

It is important to mount a volume into the container at /var/www/data, otherwise configuration and uploads will be lost following a container restart.

espocrm-dockerized's People

Contributors

leen15 avatar tesujimath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

espocrm-dockerized's Issues

Can't get to the install page

I did a docker-compose, see console output below.
Then I tried to open http://localhost:8888/install but nothing appears. Just a 301. Here is the curl output:

~/EspoCRM-Dockerized$ curl http://localhost:8888/install
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://localhost:8888/install/">here</a>.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at localhost Port 8888</address>
</body></html>
~/EspoCRM-Dockerized$ curl http://localhost:8888/install/
~/EspoCRM-Dockerized$ curl http://localhost:8888/
~/EspoCRM-Dockerized$ curl http://localhost:8888
~/EspoCRM-Dockerized$

In the log I see that a certificate is generated. Should https work?

The console log:

Status: Downloaded newer image for leen15/espocrm:latest
Creating espocrmdockerized_web_1
Attaching to espocrmdockerized_db_1, espocrmdockerized_web_1
db_1  | Initializing database
db_1  | 2017-05-13T08:37:13.213592Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1  | 2017-05-13T08:37:29.200875Z 0 [Warning] InnoDB: New log files created, LSN=45790
db_1  | 2017-05-13T08:37:35.293246Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
db_1  | 2017-05-13T08:37:35.493799Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 69fec997-37b7-11e7-aa33-0242ac120002.
db_1  | 2017-05-13T08:37:35.524732Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
db_1  | 2017-05-13T08:37:35.526005Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
db_1  | 2017-05-13T08:37:56.248952Z 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:37:56.249033Z 1 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:37:56.249084Z 1 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:37:56.249125Z 1 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:37:56.249228Z 1 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | Database initialized
db_1  | Initializing certificates
db_1  | Generating a 2048 bit RSA private key
db_1  | ...............+++
db_1  | ...................................................................................................................+++
db_1  | unable to write 'random state'
db_1  | writing new private key to 'ca-key.pem'
db_1  | -----
db_1  | Generating a 2048 bit RSA private key
db_1  | ...............................+++
db_1  | .............+++
db_1  | unable to write 'random state'
db_1  | writing new private key to 'server-key.pem'
db_1  | -----
db_1  | Generating a 2048 bit RSA private key
db_1  | ...................................................................+++
db_1  | ...................+++
db_1  | unable to write 'random state'
db_1  | writing new private key to 'client-key.pem'
db_1  | -----
db_1  | Certificates initialized
db_1  | MySQL init process in progress...
db_1  | 2017-05-13T08:38:05.975255Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1  | 2017-05-13T08:38:05.980333Z 0 [Note] mysqld (mysqld 5.7.18) starting as process 89 ...
db_1  | 2017-05-13T08:38:05.996520Z 0 [Note] InnoDB: PUNCH HOLE support available
db_1  | 2017-05-13T08:38:05.996620Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
db_1  | 2017-05-13T08:38:05.996652Z 0 [Note] InnoDB: Uses event mutexes
db_1  | 2017-05-13T08:38:05.996711Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
db_1  | 2017-05-13T08:38:05.996742Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
db_1  | 2017-05-13T08:38:05.996770Z 0 [Note] InnoDB: Using Linux native AIO
db_1  | 2017-05-13T08:38:05.997493Z 0 [Note] InnoDB: Number of pools: 1
db_1  | 2017-05-13T08:38:05.997796Z 0 [Note] InnoDB: Not using CPU crc32 instructions
db_1  | 2017-05-13T08:38:06.002570Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
db_1  | 2017-05-13T08:38:06.043385Z 0 [Note] InnoDB: Completed initialization of buffer pool
db_1  | 2017-05-13T08:38:06.049460Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
db_1  | 2017-05-13T08:38:06.068681Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
db_1  | 2017-05-13T08:38:06.174769Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
db_1  | 2017-05-13T08:38:06.174895Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
db_1  | MySQL init process in progress...
db_1  | 2017-05-13T08:38:06.580340Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
db_1  | 2017-05-13T08:38:06.582959Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
db_1  | 2017-05-13T08:38:06.582991Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
db_1  | 2017-05-13T08:38:06.583736Z 0 [Note] InnoDB: Waiting for purge to start
db_1  | 2017-05-13T08:38:06.634103Z 0 [Note] InnoDB: 5.7.18 started; log sequence number 2536414
db_1  | 2017-05-13T08:38:06.634914Z 0 [Note] Plugin 'FEDERATED' is disabled.
db_1  | 2017-05-13T08:38:06.640484Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
db_1  | 2017-05-13T08:38:06.653878Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170513  8:38:06
db_1  | 2017-05-13T08:38:06.656859Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
db_1  | 2017-05-13T08:38:06.657345Z 0 [Warning] CA certificate ca.pem is self signed.
db_1  | 2017-05-13T08:38:06.703232Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:06.703361Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:06.703442Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:06.703478Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:06.708266Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:06.719875Z 0 [Note] Event Scheduler: Loaded 0 events
db_1  | 2017-05-13T08:38:06.720150Z 0 [Note] mysqld: ready for connections.
db_1  | Version: '5.7.18'  socket: '/var/run/mysqld/mysqld.sock'  port: 0  MySQL Community Server (GPL)
db_1  | 2017-05-13T08:38:06.720165Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
db_1  | 2017-05-13T08:38:06.720171Z 0 [Note] Beginning of list of non-natively partitioned tables
db_1  | 2017-05-13T08:38:06.763100Z 0 [Note] End of list of non-natively partitioned tables
db_1  | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
db_1  | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
db_1  | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
db_1  | 2017-05-13T08:38:20.922157Z 5 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:20.922303Z 5 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:20.922409Z 5 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:20.922457Z 5 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:38:20.922553Z 5 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 
db_1  | 2017-05-13T08:38:20.924936Z 0 [Note] Giving 1 client threads a chance to die gracefully
db_1  | 2017-05-13T08:38:20.925023Z 0 [Note] Shutting down slave threads
db_1  | 2017-05-13T08:38:22.925285Z 0 [Note] Forcefully disconnecting 0 remaining clients
db_1  | 2017-05-13T08:38:22.925332Z 0 [Note] Event Scheduler: Purging the queue. 0 events
db_1  | 2017-05-13T08:38:22.925523Z 0 [Note] Binlog end
db_1  | 2017-05-13T08:38:22.927033Z 0 [Note] Shutting down plugin 'ngram'
db_1  | 2017-05-13T08:38:22.927055Z 0 [Note] Shutting down plugin 'BLACKHOLE'
db_1  | 2017-05-13T08:38:22.927064Z 0 [Note] Shutting down plugin 'partition'
db_1  | 2017-05-13T08:38:22.927069Z 0 [Note] Shutting down plugin 'ARCHIVE'
db_1  | 2017-05-13T08:38:22.927074Z 0 [Note] Shutting down plugin 'INNODB_SYS_VIRTUAL'
db_1  | 2017-05-13T08:38:22.927080Z 0 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
db_1  | 2017-05-13T08:38:22.927086Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
db_1  | 2017-05-13T08:38:22.927090Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
db_1  | 2017-05-13T08:38:22.927095Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
db_1  | 2017-05-13T08:38:22.927100Z 0 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
db_1  | 2017-05-13T08:38:22.927105Z 0 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
db_1  | 2017-05-13T08:38:22.927109Z 0 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
db_1  | 2017-05-13T08:38:22.927114Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
db_1  | 2017-05-13T08:38:22.927118Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
db_1  | 2017-05-13T08:38:22.927123Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
db_1  | 2017-05-13T08:38:22.927128Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
db_1  | 2017-05-13T08:38:22.927133Z 0 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
db_1  | 2017-05-13T08:38:22.927138Z 0 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
db_1  | 2017-05-13T08:38:22.927143Z 0 [Note] Shutting down plugin 'INNODB_FT_DELETED'
db_1  | 2017-05-13T08:38:22.927147Z 0 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'
db_1  | 2017-05-13T08:38:22.927152Z 0 [Note] Shutting down plugin 'INNODB_METRICS'
db_1  | 2017-05-13T08:38:22.927157Z 0 [Note] Shutting down plugin 'INNODB_TEMP_TABLE_INFO'
db_1  | 2017-05-13T08:38:22.927162Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
db_1  | 2017-05-13T08:38:22.927167Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
db_1  | 2017-05-13T08:38:22.927172Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
db_1  | 2017-05-13T08:38:22.927177Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'
db_1  | 2017-05-13T08:38:22.927182Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
db_1  | 2017-05-13T08:38:22.927186Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
db_1  | 2017-05-13T08:38:22.927191Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM'
db_1  | 2017-05-13T08:38:22.927196Z 0 [Note] Shutting down plugin 'INNODB_CMP_RESET'
db_1  | 2017-05-13T08:38:22.927200Z 0 [Note] Shutting down plugin 'INNODB_CMP'
db_1  | 2017-05-13T08:38:22.927205Z 0 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
db_1  | 2017-05-13T08:38:22.927210Z 0 [Note] Shutting down plugin 'INNODB_LOCKS'
db_1  | 2017-05-13T08:38:22.927215Z 0 [Note] Shutting down plugin 'INNODB_TRX'
db_1  | 2017-05-13T08:38:22.927220Z 0 [Note] Shutting down plugin 'InnoDB'
db_1  | 2017-05-13T08:38:22.927358Z 0 [Note] InnoDB: FTS optimize thread exiting.
db_1  | 2017-05-13T08:38:22.928555Z 0 [Note] InnoDB: Starting shutdown...
db_1  | 2017-05-13T08:38:23.028997Z 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
db_1  | 2017-05-13T08:38:23.029488Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 170513  8:38:23
db_1  | 2017-05-13T08:39:15.209717Z 0 [Note] InnoDB: Shutdown completed; log sequence number 12140866
db_1  | 2017-05-13T08:39:15.213530Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
db_1  | 2017-05-13T08:39:15.213583Z 0 [Note] Shutting down plugin 'MRG_MYISAM'
db_1  | 2017-05-13T08:39:15.213593Z 0 [Note] Shutting down plugin 'MyISAM'
db_1  | 2017-05-13T08:39:15.213614Z 0 [Note] Shutting down plugin 'CSV'
db_1  | 2017-05-13T08:39:15.213622Z 0 [Note] Shutting down plugin 'MEMORY'
db_1  | 2017-05-13T08:39:15.213634Z 0 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
db_1  | 2017-05-13T08:39:15.213695Z 0 [Note] Shutting down plugin 'sha256_password'
db_1  | 2017-05-13T08:39:15.213700Z 0 [Note] Shutting down plugin 'mysql_native_password'
db_1  | 2017-05-13T08:39:15.213995Z 0 [Note] Shutting down plugin 'binlog'
db_1  | 2017-05-13T08:39:15.216150Z 0 [Note] mysqld: Shutdown complete
db_1  | 
db_1  | 
db_1  | MySQL init process done. Ready for start up.
db_1  | 
db_1  | 2017-05-13T08:39:15.975212Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1  | 2017-05-13T08:39:15.979123Z 0 [Note] mysqld (mysqld 5.7.18) starting as process 1 ...
db_1  | 2017-05-13T08:39:15.987912Z 0 [Note] InnoDB: PUNCH HOLE support available
db_1  | 2017-05-13T08:39:15.987970Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
db_1  | 2017-05-13T08:39:15.987980Z 0 [Note] InnoDB: Uses event mutexes
db_1  | 2017-05-13T08:39:15.987988Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
db_1  | 2017-05-13T08:39:15.987995Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
db_1  | 2017-05-13T08:39:15.988003Z 0 [Note] InnoDB: Using Linux native AIO
db_1  | 2017-05-13T08:39:15.988669Z 0 [Note] InnoDB: Number of pools: 1
db_1  | 2017-05-13T08:39:15.988939Z 0 [Note] InnoDB: Not using CPU crc32 instructions
db_1  | 2017-05-13T08:39:15.992685Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
db_1  | 2017-05-13T08:39:16.015723Z 0 [Note] InnoDB: Completed initialization of buffer pool
db_1  | 2017-05-13T08:39:16.020440Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
db_1  | 2017-05-13T08:39:16.036659Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
db_1  | 2017-05-13T08:39:17.578107Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
db_1  | 2017-05-13T08:39:17.578405Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
db_1  | 2017-05-13T08:39:22.580965Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
db_1  | 2017-05-13T08:39:22.584953Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
db_1  | 2017-05-13T08:39:22.585009Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
db_1  | 2017-05-13T08:39:22.585986Z 0 [Note] InnoDB: Waiting for purge to start
db_1  | 2017-05-13T08:39:22.636378Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 6616ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.)
db_1  | 2017-05-13T08:39:22.636856Z 0 [Note] InnoDB: 5.7.18 started; log sequence number 12140866
db_1  | 2017-05-13T08:39:22.638000Z 0 [Note] Plugin 'FEDERATED' is disabled.
db_1  | 2017-05-13T08:39:22.644370Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
db_1  | 2017-05-13T08:39:22.656993Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
db_1  | 2017-05-13T08:39:22.657420Z 0 [Warning] CA certificate ca.pem is self signed.
db_1  | 2017-05-13T08:39:22.661705Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
db_1  | 2017-05-13T08:39:22.661756Z 0 [Note] IPv6 is available.
db_1  | 2017-05-13T08:39:22.661772Z 0 [Note]   - '::' resolves to '::';
db_1  | 2017-05-13T08:39:22.661814Z 0 [Note] Server socket created on IP: '::'.
db_1  | 2017-05-13T08:39:22.667442Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170513  8:39:22
db_1  | 2017-05-13T08:39:22.778732Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:39:22.778822Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:39:22.779184Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:39:22.779388Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:39:22.786978Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1  | 2017-05-13T08:39:22.797206Z 0 [Note] Event Scheduler: Loaded 0 events
db_1  | 2017-05-13T08:39:22.797622Z 0 [Note] mysqld: ready for connections.
db_1  | Version: '5.7.18'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
db_1  | 2017-05-13T08:39:22.797644Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
db_1  | 2017-05-13T08:39:22.797649Z 0 [Note] Beginning of list of non-natively partitioned tables
db_1  | 2017-05-13T08:39:22.822606Z 0 [Note] End of list of non-natively partitioned tables

What's wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.