A NodeJS implementation of Git LFS Server.
npm install node-git-lfs- Support Git LFS v1 Batch API
- Support SSH Authentication
- Multiple store supported - currently
AWS S3andMongoDB GridFS - Multiple authentication method support - currently
basicandnone - Use JWT to secure
download,uploadandverifyendpoints - Option to directly upload to and download from AWS S3
- Use SHA256 checksum when upload directly to AWS S3
All configurations can be done via environment variable or configuration file
LFS_BASE_URL- URL of the LFS server - requiredLFS_PORT- HTTP portal of the LFS server, defaults to3000- requiredLFS_STORE_TYPE- Object store type, can be eithers3(for AWS S3),s3_direct(for direct upload and download from AWS S3) orgrid(for MongoDB GridFS), defaults tos3- requiredLFS_AUTHENTICATOR_TYPE- Authenticator type, can bebasic(for basic username and password),none(for no authentication), defaults tonone- requiredLFS_JWT_ALGORITHM- JWT signature algorithm, defaults toHS256LFS_JWT_SECRET- JWT signature secret - requiredLFS_JWT_ISSUER- Issuer of the JWT token, defaults tonode-git-lfsLFS_JWT_EXPIRES- JWT token expire time, defaults to30m
If storage type is s3 or s3_direct:
AWS_ACCESS_KEY- AWS access key - requiredAWS_SECRET_KEY- AWS secret key - requiredLFS_STORE_S3_BUCKET- AWS S3 bucket - requiredLFS_STORE_S3_ENDPOINT- AWS S3 endpoint, normally this will be set by regionLFS_STORE_S3_REGION- AWS S3 regionLFS_STORE_S3_STORAGE_CLASS- AWS S3 storage class, can beSTANDARD,STANDARD_IAorREDUCED_REDUNDANCY, defaults toSTANDARD
If storage type is grid:
LFS_STORE_GRID_CONNECTION- MongoDB connection URL - required
If authenticator type is basic:
LFS_AUTHENTICATOR_USERNAME- Username - requiredLFS_AUTHENTICATOR_PASSWORD- Password - requiredLFS_AUTHENTICATOR_CLIENT_PUBLIC_KEY- Location of the client's public key
LFS_SSH_ENABLED- Enable SSH server, defaults totrueLFS_SSH_PORT- SSH server port, defaults to2222LFS_SSH_IP- SSH server bind IP, defaults to0.0.0.0LFS_SSH_PUBLIC_KEY- SSH server public key - required if SSH is enabledLFS_SSH_PRIVATE_KEY- SSH server private key - required if SSH is enabled