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 S3
andMongoDB GridFS
- Multiple authentication method support - currently
basic
andnone
- Use JWT to secure
download
,upload
andverify
endpoints - 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 toHS256
LFS_JWT_SECRET
- JWT signature secret - requiredLFS_JWT_ISSUER
- Issuer of the JWT token, defaults tonode-git-lfs
LFS_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_IA
orREDUCED_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 totrue
LFS_SSH_PORT
- SSH server port, defaults to2222
LFS_SSH_IP
- SSH server bind IP, defaults to0.0.0.0
LFS_SSH_PUBLIC_KEY
- SSH server public key - required if SSH is enabledLFS_SSH_PRIVATE_KEY
- SSH server private key - required if SSH is enabled