mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) simplify starting grist-core and add some more usage information
Summary: I worked through the README for grist-core, and the instructions for setting it up and starting it. This change includes a small simplification, and a few more instructions for getting started. Test Plan: manual Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2619
This commit is contained in:
parent
a15187362c
commit
cff02cd3d0
14
README.md
14
README.md
@ -45,12 +45,20 @@ For building from source, you can start with this:
|
|||||||
npm install
|
npm install
|
||||||
npm run build:prod
|
npm run build:prod
|
||||||
npm run install:python
|
npm run install:python
|
||||||
GRIST_DEFAULT_EMAIL=you@example.com npm start
|
npm start
|
||||||
# unauthenticated grist api available at http://localhost:8484/api/
|
# unauthenticated grist api available at http://localhost:8484/api/
|
||||||
|
|
||||||
Stay tuned for more instructions to come at release.
|
Then you can use the Grist API locally to work on a document. Currently you need
|
||||||
|
to "upload" a document to work with it. This makes a copy of it that the server
|
||||||
|
controls - you can find it in the `data` directory:
|
||||||
|
|
||||||
For using pre-built Grist, just head on over to <https://www.getgrist.com>.
|
curl -F 'upload=@YourDocument.grist' http://localhost:8484/api/docs
|
||||||
|
# Note the document ID that is returned.
|
||||||
|
|
||||||
|
The [Data-Tables endpoints](https://support.getgrist.com/api/#tag/Data-Tables) are
|
||||||
|
particularly useful.
|
||||||
|
|
||||||
|
For using hosted Grist, just head on over to <https://www.getgrist.com>.
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Main entrypoint for grist-core server.
|
* Main entrypoint for grist-core server.
|
||||||
|
*
|
||||||
|
* By default, starts up on port 8484.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {updateDb} from 'app/server/lib/dbUtils';
|
import {updateDb} from 'app/server/lib/dbUtils';
|
||||||
@ -10,20 +12,28 @@ const G = {
|
|||||||
port: parseInt(process.env.PORT!, 10) || 8484,
|
port: parseInt(process.env.PORT!, 10) || 8484,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Set a default for an environment variable.
|
||||||
|
function setDefaultEnv(name: string, value: string) {
|
||||||
|
if (process.env[name] === undefined) {
|
||||||
|
process.env[name] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export async function main() {
|
export async function main() {
|
||||||
// Use a distinct cookie.
|
// Use a distinct cookie.
|
||||||
if (!process.env.GRIST_SESSION_COOKIE) {
|
setDefaultEnv('GRIST_SESSION_COOKIE', 'grist_core');
|
||||||
process.env.GRIST_SESSION_COOKIE = 'grist_core';
|
// There's no login system released yet, so set a default email address.
|
||||||
}
|
setDefaultEnv('GRIST_DEFAULT_EMAIL', 'support@getgrist.com');
|
||||||
// This is where documents are placed, for historic reasons.
|
// Set directory for uploaded documents.
|
||||||
await fse.mkdirp('samples');
|
setDefaultEnv('GRIST_DATA_DIR', 'data');
|
||||||
|
await fse.mkdirp(process.env.GRIST_DATA_DIR!);
|
||||||
// Make a blank db if needed.
|
// Make a blank db if needed.
|
||||||
await updateDb();
|
await updateDb();
|
||||||
// Launch single-port, self-contained version of Grist.
|
// Launch single-port, self-contained version of Grist.
|
||||||
// You probably want to have GRIST_DEFAULT_EMAIL set since there's no login system yet.
|
|
||||||
await mergedServerMain(G.port, ["home", "docs", "static"]);
|
await mergedServerMain(G.port, ["home", "docs", "static"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
|
// tslint:disable-next-line:no-console
|
||||||
main().catch((err) => console.error(err));
|
main().catch((err) => console.error(err));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user