chore(deps): bump tmpl from 1.0.4 to 1.0.5
|1 year ago|
|.ebextensions||3 years ago|
|.github/workflows||2 years ago|
|docs||3 years ago|
|functions||1 year ago|
|lib||2 years ago|
|logs||3 years ago|
|mocks||3 years ago|
|test||2 years ago|
|.firebaserc||2 years ago|
|.gitignore||2 years ago|
|database.rules.json||2 years ago|
|firebase.json||2 years ago|
|package-lock.json||1 year ago|
|package.json||2 years ago|
|readme.MD||1 year ago|
|webpack.common.js||2 years ago|
|webpack.dev.js||2 years ago|
|webpack.prod.js||2 years ago|
This app allows you to download iCal calendar files from Facebook URL / event number.
You can use it as a service at https://fb2ical-3051b.web.app/ or use this repository to launch your own instance.
The page that is served by the app uses a service worker and can be used offline and installed as PWA (Progressive Web App).
npm install. App should be compatible with
Installing with Firebase
npm install in root directory, make sure you navigate to
functions/ directory and run
npm install there. You need to set up Firebase service and install Firebase CLI in order to deploy and develop for Firebase service.
It can run in environment with NodeJS 10 installed. It does not use Facebook API for retrieving information, instead it relies on crawling and scraping event URL. This means that it can stop working or the results might not be reliable so use this at your own risk.
Run development server:
npm run start:dev.
Run development server with debugger
npm run start:dev:inspect.
Development with Firebase
npm run start:dev:firebase from project root. This will run webpack development server for frontend and also launch Firebase emulator. Unfortunately you will not get live reload on frontend because it is actually served using Firebase hosting emulator, so you will need to refresh the browser manually.
The frontend / assets are built by webpack and put into
dist/ folder. These assets are then served statically.
npm run start will build the assets and start the server in production mode.
The app is stateless and does not need any persistent storage.
The app is automatically set up to create logs in
logs/ directory each day but it's up to your environment if the file system is persisted.
Deployement with Firebase
npm run deploy:firebase to deploy everything. Notice: the project contains symbolic link between
functions/ directories so Firebase functions can actually use the application code, otherwise it would not get uploaded. Do not remove this symbolic link.
App contains middleware that will redirect all traffic to HTTPS if the requests contain header
X-FORWARDED-PROTO. For this to work, the middleware has to be enabled by setting environment variable
ENFORCE_HTTPS to value
There are environment variables for setting pu SSL certificate from Let's Encrypt (acme challenge):
CERT_ENDPOINT: endpoint without leading slash such as
This way you can set up the endpoint that will reply with secret and this should allow you to generate key pairs.