First free open-source Telegram freelance market. Built by people for people.
Classic freelance markets have long been terrible: not only are they old, slow, expensive (on average they take ~22% of your money), but also profit-oriented and not customer-oriented. Heck, read this post about why upwork sucks! I mean, when I first started on Elance back in 2012 fees were around 10%, then they launched paid accounts, then raised fees to 15% and then finally raised them to the current figures when merging into Upwork.
@arbeit_bot — is freelance market, redesigned. Imagine if you didn't have to pay a dime to get job offers or the list of the best freelancers on the market. Imagine if you didn't get spammed with amateur job bids from sketchy companies or freelancers. Imagine if you could always contribute to your favourite freelance market and if all freelancer ranking algorithms were transparent. Imagine if you didn't have to copy-paste the same job bid from client to client. Imagined? Good, because that's what ArbeitBot is offering to you.
We are a completely non-profit organization driven by volunteer contributors who spend their spare time to make a difference in the freelancers' lives. We wanted to build a freelance market where the only person who matters is the client — not stockholders or greedy businessmen. But, if you found this text here, we would assume that you are aware of what ArbeitBot is and would want to help us out.
Well, first, please check out our development roadmap to be on track with all the current tasks that we are working on. Then, continue reading.
ArbeitBot is a completely non-profit and community-driven project which really depends on it's contributors. If you feel adventurous or just want to help out the project — please do so either by fixing issues from the list and creating a pull request or by submitting issues to our bug tracker.
The best option to add a feature to the codebase is to first open an issue with label Enhancement
(to notify us that you are working on something) where you may also communicate with initial contributors, then fork this project and create a pull request.
If you want to fix a bug from the list of the issues, please comment under the issue that you are working on it, then fork the repository and create a pull request.
Please use Airbnb JavaScript Style Guide as the main tool to follow our project-wide code style.
We highly appreciate any help and that's why the most active contributors will get a 🐝 emoji beside their freelancer profile to stand out among other freelancers of the same category, like that:
By the way, did you know how @isamsky got his special symbol? He is the creator of our awesome logo!
So, you decided to help us out — good, good. First, ArbeitBot can be launched with the latest LTS release of Node.js — so go ahead and install it if you didn't do that yet. Secondly, we use MongoDB as our database, so go ahead and get it as well. The next step would obviously be to run npm i
in the root folder of the project to install all the dependencies with Node Package Manager. Then you would want to setup some environment variables to support configuration abstraction.
TELEGRAM_API_KEY
— api key for your telegram bot (obtained from @BotFather)MONGO_DB_URL
— url of your mongo database (i.e.mongodb://localhost:27017/
)ADMIN_CHAT_ID
— chat id of Telegram channel that should receive logs from botUSE_WEBHOOKS
— flag identifying if bot should use webhooks or should fetch updates every 1000 seconds (webhooks make bot faster but require custom server with SSL setup)- (Optional)
WEBHOOK_CALLBACK_URL
— url that should be used by Telegram servers for webhooks, should behttps
- (Optional)
SSL_CERTIFICATE_PATH
— path to ssl certificate for webhooks - (Optional)
SSH_RSA_PATH
— path to ssh private certificate for webhooks (should not be password encrypted) - (Optional)
ARBEIT_BOT_PRODUCTION_URL
— url of your production server for flightplan (if you use flightplan)
Easiest approach to obtain ADMIN_CHAT_ID
is to access url https://api.telegram.org/botYOUR-BOT-TOKEN/getUpdates
with no code running, after you send bot some commands.
Fortunately, Telegram webhooks support self-signed SSL certificates. You can use this command on server to create self-signed ssl key that can be accepted by Telegram servers:
openssl req -newkey rsa:2048 -sha256 -nodes -keyout key.key -x509 -days 365 -out crt.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Arbeit_bot/CN={DOMAIN}"
After execution you will have key.key
(your ssl key) and crt.pem
(your ssl certificate).
Important: please make sure to add your real server address instead of {DOMAIN}
in this command. If you aren't using domain name, you can leave your IP there in the form of 1.1.1.1
. If you don't specify the correct address or domain here, you will not be able to receive any updates from Telegram servers.
Wonderful! After you got everything working well, please follow instructions from Want to contribute? We all hope to see you with the 🐝 emoji someday!
In case you need a hand to figure something out, please feel free to open an issue or chat with us on our Telegram channel @arbeit_bot_support ❤️
ArbeitBot is released under the MIT license. See LICENSE for details. ArbeitBot development would not be possible without help of existing Node.js Telegram bot API written by @yagop. Thank you!