The link forward service used by https://go.edi.wang. It generates static URLs for redirecting third party URLs. It's similar to, but NOT a URL shorter.
- Use a static token to adapt changes to origin url.
- Track user click to generate report. (Only if DNT isn't enabled)
e.g.:
Raw URL:
https://www.somewebsite.com/a-very-long-and-complicated-link-that-can-also-change?with=parameters
will be translate to https://yourdomain/fw/token or https://yourdomain/aka/name
Forward Link, Create/Manage/Share Link, View Report.
https://hub.docker.com/r/ediwang/elf
You can also follow the next section to build and run the project yourself.
| Tools | Alternative |
|---|---|
| .NET 6 SDK | N/A |
| Visual Studio 2022 | Visual Studio Code |
| Azure SQL Database | SQL Server 2019 / LocalDB (Dev Only) |
For a quick Azure deployment, you can use the automation script Azure-Deployment\Deploy.ps1 to setup a ready-to-run Elf in a couple of minutes. (Azure CLI is required to run the script)
Create an Azure SQL Database or a SQL Server 2019+ database. e.g. elf
Update the connection string "ElfDatabase" in appsettings.[env].json
"ConnectionStrings": {
"ElfDatabase": "Server=(localdb)\\MSSQLLocalDB;Database=elf;Trusted_Connection=True;"
}Build and run ./src/API/Elf.sln
Register an App in Azure Active Directory
- Set an Application ID URI as unique for this app
- Expose an API with name
access_as_userand with Admins and users type - Change
accessTokenAcceptedVersionto2in Manifest blade - Copy "appId" to set as AzureAd:ClientId in appsettings.json file
"AzureAd": {
"Domain": "{YOUR-VALUE}",
"TenantId": "{YOUR-VALUE}",
"ClientId": "{YOUR-VALUE}",
}To use Redis, follow these steps:
- Create an Azure Cache for Redis instance
- Copy the connection string in "Access keys"
- Set the connection string in
ConnectionStrings:RedisConnectioninappsettings.jsonor environment variable - Restart the application
- Node.js 16.x LTS
- VSCode or any editor you like
- Navigate to the Azure portal and select the Azure AD service.
- Select New registration.
- In the Register an application page that appears, enter your application's registration information:
- In the Name section, enter a meaningful application name that will be displayed to users of the app, for example
elf-admin. - Under Supported account types, select Accounts in this organizational directory only.
- In the Redirect URI (optional) section, select Single-page application in the combo-box and enter the following redirect URI:
http://localhost:4200/for local debug and whatever URL you use in production.
- In the Name section, enter a meaningful application name that will be displayed to users of the app, for example
- Select Register to create the application.
- In the app's registration screen, find and note the Application (client) ID. You use this value in your app's configuration file(s) later in your code.
- In the app's registration screen, click on the API permissions blade in the left to open the page where we add access to the APIs that your application needs.
- Click the Add a permission button and then,
- Ensure that the My APIs tab is selected.
- In the list of APIs, select the API you created.
- In the Delegated permissions section, select the access_as_user in the list. Use the search box if necessary.
- Click on the Add permissions button at the bottom.
Open ./src/Admin/elf-admin/src/assets/env.js
Replace elfApiBaseUrl, clientId, tenantId, applicationIdUri, applicationInsightKey with your own values.
cd elf-admin
npm install
ng serve