{"id":24517501,"url":"https://github.com/koder77/l1vmgodata","last_synced_at":"2026-05-20T06:09:42.533Z","repository":{"id":87520476,"uuid":"480935586","full_name":"koder77/l1vmgodata","owner":"koder77","description":"l1vmgodata - a simple data base for exchange data between programs","archived":false,"fork":false,"pushed_at":"2025-01-18T15:31:56.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-18T16:35:53.407Z","etag":null,"topics":["base","data","database","go","simple"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koder77.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"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}},"created_at":"2022-04-12T18:52:49.000Z","updated_at":"2025-01-18T15:31:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a6a2939-f08d-47ad-bd96-b1df03772400","html_url":"https://github.com/koder77/l1vmgodata","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/koder77%2Fl1vmgodata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koder77%2Fl1vmgodata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koder77%2Fl1vmgodata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koder77%2Fl1vmgodata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koder77","download_url":"https://codeload.github.com/koder77/l1vmgodata/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719399,"owners_count":20336607,"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":["base","data","database","go","simple"],"created_at":"2025-01-22T01:34:13.522Z","updated_at":"2026-05-20T06:09:42.528Z","avatar_url":"https://github.com/koder77.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"L1VMgodata 0.9.8 \n================\nThis is my first go project.\nThis database is written for data exchange between programs.\nNew save/load function added to write/read whole database from disk!\nNEW: added IP whitelist: \"whitelist.config\" in which you can set all allowed client IPs!\n\nNEW: added \"json-export\" command to export the data base into a \".json\" file.\nNEW: now single quotes: ' are used for data!\nNEW: added Json import!\nNEW: now you have to set two ports. The first one is for direct access with a program like nc or other programs.\nThe second is for the new web browser formular to save/load data.\n\nNEW: in the web form the form is always visible. also after commands are executed.\n\nAdded blacklisting IPs if there are more than 3 failed logins via TLS/SSL.\n\nNEW: TLS/SSL connections with authentication. \nTo create a SSL certificate with name \"cert.pem\":\n\n$ openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout cert.pem -out cert.pem\n\nCreate a password file user and password with: \"createuser\" program.\nThe name of the users file is: \"users.config\". It stores the user name and the password hashes and the salt. It has two entry lines for each user!\n\nThere is a \"settings.l1db\" file. It stores the path for all databases. You need to set an existing path there. I did set a directory \"l1vmgodata\" in my \"/home\" directory. You have to change this:\n\n```\nl1vmgodata database\n:database-root \"/home/stefan/l1vmgodata/\"\n:link '0'\n```\n\n\nRun with TLS/SSL on:\n\n$ ./l1vmgodata 127.0.0.1 2000 tls=on off\n\nUse TLS/SSL conection:\n\n$ openssl s_client -connect 127.0.0.1:2000 -brief\n\nLogin with:\n\nlogin :username 'password'\n\n\nYou can connect via nc too:\n\n```\n$ nc localhost 2000 2001\n```\n\nAnd in your web browser:\n\n```\n127.0.0.1:2001\n```\n\nVia nc you can send the \"store data\" command:\n\n```\nstore data :test '12345'\nOK\nget key :test\n12345\n```\n\nThe commands are:\n\n```\nstore data\nstore data new\nget key\nget regex key\nget value\nget regex value\nremove\nclose\nsave\nload\njson-export\njson-import\ncsv-export\ncsv-import\ncsv-table-export\ncsv-table-import\nerase all\nusage\nexit\nset-link\nrem-link\nget-links-number\nget-link-name\n```\n\nStore data:\n\n```\nstore data :foobar 'test 1234'\n```\n\nA faster command is \"store data new\". It does not check if a key is already used.\nYou have to take care of it! It is exponentially faster than \"store data\"!\n\n```\nstore data new :foobar 'test 1234'\n```\n\nGet key/remove:\n\n```\nget key :foobar\ntest 1234\n```\n\nGet value:\n\n```\nget value 'test 1234'\nfoobar\n```\n\nGet regex key:\n\n```\nget regex key :foo.\nfoobar\n```\n\nSave example:\n\n```\nsave 'test.db'\nOK\n```\n\nLoad:\n\n```\nload 'test.db'\nOK\n```\n\nClose client connection:\n\n```\nclose\nOK\n```\n\nExport database into \".json\" file:\n\n```\njson-export 'test.json'\n```\n\nImport database from \".json\" file:\n\n```\njson-import 'test.json'\n```\n\n\nErase all data entries. Handle with care:\n\n```\nerase all\nOK\n```\n\nGet data usage:\n\n```\nusage\nUSAGE 0.00% : 1 of 10000\n```\n\nNEW\n===\nSet links between key values. You can save multiple links between data.\nHere are the commands:\n\nSet link:\n\n```\nstore data :water-n 'water'\nOK\nstore data :water-chem 'H2O' \nOK\nset-link :water-n 'water-chem'\nOK\n```\n\nGet links total number:\n\n```\nget-links-number :water-n ''\n1\n```\n\nGet link index 0:\n\n```\nget-link-name :water-n '0'\nwater-chem\n``` \n\nRemove link:\n\n```\nrem-link :water-n 'water-chem'\nOK\n```\n\nI did add ```web.go``` webinterface for browser.\nYou can store and load data in the web browser with the commands like above!\nThe save and load functions use the value entry as the filename!\n\nexit command to quit the database\n\nNEW\n===\nCSV table export. The data must be stored like this (chem.l1db):\n\n```\nl1vmgodata database\n:1-1-substance \"water\"\n:link '0'\n:1-2-chemical \"H2O\"\n:link '0'\n:1-3-boiling \"100\"\n:link '0'\n:2-1-substance \"iron\"\n:link '0'\n:2-2-chemical \"Fe\"\n:link '0'\n:2-3-boiling \"3070\"\n:link '0'\n\n```\nSo here 1-1-substance \"water\" is index 1 key 1.\nAnd the 1-3-boiling is the last key of index 1.\n\nThe CSV table looks like this:\n\n```\nsubstance, chemical, boiling\nwater, H2O, 100\niron, Fe, 3070\n```\n\n\u003cb\u003eCSV table import.\u003c/b\u003e\nNow you can import CSV tables also. The entries are named like in a CSV table export. See above. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoder77%2Fl1vmgodata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoder77%2Fl1vmgodata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoder77%2Fl1vmgodata/lists"}