{"id":15138552,"url":"https://github.com/zzzprojects/sqlfiddle3","last_synced_at":"2025-04-05T21:07:53.233Z","repository":{"id":51251268,"uuid":"77402827","full_name":"zzzprojects/sqlfiddle3","owner":"zzzprojects","description":"New version based on vert.x and docker","archived":false,"fork":false,"pushed_at":"2024-03-20T20:52:50.000Z","size":1722,"stargazers_count":335,"open_issues_count":11,"forks_count":62,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-29T19:08:34.084Z","etag":null,"topics":["database","database-services","docker","groovy","javascript","jmeter","kubernetes","mysql","oracle","postgresql","saas","sql-server","vertx"],"latest_commit_sha":null,"homepage":"https://sqlfiddle.com/","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zzzprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["zzzprojects"],"custom":["https://zzzprojects.com/contribute"]}},"created_at":"2016-12-26T19:27:27.000Z","updated_at":"2025-03-27T20:37:34.000Z","dependencies_parsed_at":"2024-09-16T12:35:49.886Z","dependency_job_id":"d1d8297a-5c2d-49b0-88d9-b92a1e076a6e","html_url":"https://github.com/zzzprojects/sqlfiddle3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzzprojects%2Fsqlfiddle3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzzprojects%2Fsqlfiddle3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzzprojects%2Fsqlfiddle3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzzprojects%2Fsqlfiddle3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zzzprojects","download_url":"https://codeload.github.com/zzzprojects/sqlfiddle3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399877,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","database-services","docker","groovy","javascript","jmeter","kubernetes","mysql","oracle","postgresql","saas","sql-server","vertx"],"created_at":"2024-09-26T07:41:18.030Z","updated_at":"2025-04-05T21:07:53.206Z","avatar_url":"https://github.com/zzzprojects.png","language":"JavaScript","funding_links":["https://github.com/sponsors/zzzprojects","https://zzzprojects.com/contribute"],"categories":[],"sub_categories":[],"readme":"## Library Powered By\n\nThis library is powered by [Entity Framework Extensions](https://entityframework-extensions.net/?z=github\u0026y=entityframework-plus)\n\n\u003ca href=\"https://entityframework-extensions.net/?z=github\u0026y=entityframework-plus\"\u003e\n\u003ckbd\u003e\n\u003cimg src=\"https://zzzprojects.github.io/images/logo/entityframework-extensions-pub.jpg\" alt=\"Entity Framework Extensions\" /\u003e\n\u003c/kbd\u003e\n\u003c/a\u003e\n\n---\n\n# What's SQL Fiddle? \n*version 3*\n\n**A tool for easy online testing and sharing of database problems and their solutions.**\n\nThis is the complete source code and management configuration for the site running at http://sqlfiddle.com\n\nThis is an open-source project made available via the MIT license. Every dependency (except for the commercial databases, which are optional) is also open source.\n\nContributions are welcome!\n\n## Running SQL Fiddle\n\nThis version of the site is built using Docker, designed to run within Kubernetes using Helm.\n\nThe application server is implemented with Vert.x.\n\nIf you have installed Helm and Kubernetes is setup properly, you can launch the core system without even having to clone this project. Just run these commands:\n\n    helm repo add sqlfiddle https://zzzprojects.github.io/sqlfiddle3/charts/\n    kubectl create namespace sqlfiddle\n    helm install sqlfiddle/sqlfiddleOpenCore\n\nAfter running this command, your copy of the site will be running in your kubernetes environment.\n\n### Software required for building\n\nYou will need Docker installed to build the project. You need kubectl and helm if you want to run it. If you want to run it locally, you need Minikube.\n\n### Preparing a local Kubernetes environment\n\nThe project is designed to run within any Kubernetes environment. One such environment is Minikube, which is useful for doing local development and evaluation. Review the Minikube installation instructions here if this is your chosen Kubernetes environment:   \n\n    https://kubernetes.io/docs/tasks/tools/install-minikube/\n\nYou will probably need at least 8GB of memory for Kubernetes. Here's how you would configure Minikube with 8GB of memory:\n\n    minikube start --insecure-registry 10.0.0.0/24 --memory 8192\n\nIf you are using Minikube, it is convenient to use the docker daemon to publish the container images. Setup your docker environment to do so with this command:\n\n    eval $(minikube docker-env)\n\nYou also need to enable the \"ingress\" addon, like so:\n\n    minikube addons enable ingress\n\nFinally, initialize helm:\n\n    helm init\n\n### Building Docker images\n\nYou can build the container images with these commands:\n\n    docker build -t sqlfiddle/appservercore:latest appServerCore\n    docker build -t sqlfiddle/varnish:latest varnish\n    docker build -t sqlfiddle/appdatabase:latest appDatabase\n    docker build -t sqlfiddle/hostmonitor:latest hostMonitor\n    docker build -t sqlfiddle/mysql56host:latest mysql56Host\n    docker build -t sqlfiddle/postgresql96host:latest postgresql96Host\n    docker build -t sqlfiddle/postgresql93host:latest postgresql93Host\n    docker build -t sqlfiddle/mssql2017host:latest mssql2017Host\n\n#### Extra steps necessary for Oracle 11g XE\nIf you want to include Oracle 11g XE in your environment, you have to do some manual steps first (*thanks Oracle!*):\n\n1. Download ojdbc6.jar from http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.\n2. `cp ojdbc6.jar appServerExtended/`\n3. Download oracle-xe-11.2.0-1.0.x86_64.rpm.zip from http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html\n4. `cp oracle-xe-11.2.0-1.0.x86_64.rpm.zip oracle11gHost`\n\nFinally you can issue these Docker build commands to make the Oracle-extended versions:\n\n    docker build -t sqlfiddle/appserverextended:latest appServerExtended\n    docker build -t sqlfiddle/oracle11ghost:latest oracle11gHost\n\nSuppose you are using Minikube and have setup the docker environment as mentioned above. In that case, you don't need to take any more steps to make these images available to your Kubernetes environment. If you are using some other Kubernetes service, then you will need to publish those images to whichever container registry necessary for your Kubernetes service to read them.\n\n### Publishing to a custom docker registry\n\nUse these commands to publish the local builds of your containers to a remote registry. This is necessary when you are using something other than Minikube as your Kubernetes host. Be sure that the registry you are pushing into is available to your Kubernetes instance. Also, be sure not to redistribute commercial software to a public location, as you will probably be violating copyright terms.\n\n    docker tag sqlfiddle/appserverextended:latest $EXTERNAL_REGISTRY/appserverextended:latest\n    docker push $EXTERNAL_REGISTRY/appserverextended:latest\n    docker tag sqlfiddle/oracle11ghost:latest $EXTERNAL_REGISTRY/oracle11ghost:latest\n    docker push $EXTERNAL_REGISTRY/oracle11ghost:latest\n    docker tag sqlfiddle/mssql2017host:latest $EXTERNAL_REGISTRY/mssql2017host:latest\n    docker push $EXTERNAL_REGISTRY/mssql2017host:latest\n\nBe sure to configure your sqlfiddleCommercialExtension helm chart to use $EXTERNAL_REGISTRY as the value for registryPrefix.\n\n### Starting Kubernetes services\n\nNote that it is expected that in production, you would use an external PostgreSQL service (such as AWS RDS) to run the appDatabase. The \"isLocal\" switch in the helm charts is used to switch between an externally-hosted appDatabase and one running in a container.\n\nYou will need to have `helm` and `kubectl` installed before running these commands. If you installed Minikube then kubectl should already be available. Otherwise, just make sure you have it installed and configured to refer to your Kubernetes environment.\n\nOnce the container images are available to Kubernetes (from the above steps), run these commands to start up the SQL Fiddle services:\n\n    kubectl create namespace sqlfiddle\n    helm install sqlfiddleOpenCore\n\nTo run the commercial software, use these commands instead:\n\n    kubectl create namespace sqlfiddle\n    helm install sqlfiddleCommercialExtension\n\nThis will bring the site up with SQL Server and Oracle running too.\n\n### Accessing your running instance\n\nUse a browser to access the site via the Kubernetes ingress service. You can find the IP address necessary to access the site using this command:\n\n    kubectl --namespace sqlfiddle describe ing\n\nYou can expect output like so:\n\n    Name:             ingress\n    Namespace:        sqlfiddle\n    Address:          192.168.99.100\n    Default backend:  appserver-service:80 (172.17.0.11:8080,172.17.0.2:8080)\n    Rules:\n      Host  Path  Backends\n      ----  ----  --------\n      *     *     appserver-service:80 (172.17.0.11:8080,172.17.0.2:8080)\n    ....    \n\nUse the value for \"Address\" as the host name for your URL. For example, based on the above sample output you could access the running instance at http://192.168.99.100/\n\n### Development tips\n\nWhen developing locally in Minikube, you can make changes faster by providing a local NFS server on your host machine (the environment in which you are making changes). Change your helm chart values to specify your NFS server IP (by default, 192.168.99.1) and filesystem path. When the NFS server is specified, the helm chart will include a volume mount to your NFS path and will launch \"grunt\" within the container to watch for changes. This allows you to make changes to the appserver without having to rebuild / redeploy the container.\n\n## Useful links\n\n- [Tool](http://sqlfiddle.com/)\n- [Sample Fiddle](http://sqlfiddle.com/#!9/a6c585/1) \n- You can also consult tons of questions on \n[Stack Overflow](https://stackoverflow.com/questions/tagged/sqlfiddle)\n\n## Contribute\n\nThe best way to contribute is by **spreading the word** about the library:\n\n - Blog it\n - Comment it\n - Star it\n - Share it\n \nA **HUGE THANKS** for your help.\n\n## More Projects\n\n- Projects:\n   - [EntityFramework Extensions](https://entityframework-extensions.net/)\n   - [Dapper Plus](https://dapper-plus.net/)\n   - [C# Eval Expression](https://eval-expression.net/)\n- Learn Websites\n   - [Learn EF Core](https://www.learnentityframeworkcore.com/)\n   - [Learn Dapper](https://www.learndapper.com/)\n- Online Tools:\n   - [.NET Fiddle](https://dotnetfiddle.net/)\n   - [SQL Fiddle](https://sqlfiddle.com/)\n   - [ZZZ Code AI](https://zzzcode.ai/)\n- and much more!\n\nTo view all our free and paid projects, visit our website [ZZZ Projects](https://zzzprojects.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzzzprojects%2Fsqlfiddle3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzzzprojects%2Fsqlfiddle3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzzzprojects%2Fsqlfiddle3/lists"}